Android应用项目文件夹必须项(如何判定一个文件夹是安卓项目)
settings.gradle里指定了包含的模块:
几个模块文件夹,里面有src/main/AndroidManifest.xml
模块分为应用模块和库模块,类型在它的build.gradle里看:
怎么找到主程序:AndroidManifest里有这一段的
它的activity的name指定了主程序的java或kotlin脚本的路径和名字。com、unity3d是一层层文件夹。
Android应用签名相关
关键词:包体、签名、摘要、私钥、公钥、公钥哈希指纹。
只有包名+签名都相同才被认为是同一个app。签名是应用ID的一部分,可以用来区分同名app。
签名是包体摘要+私钥计算出来的,需要二者都相同才能计算出相同的签名。
安装应用时通过签名+公钥>摘要,和对包体计算的摘要对比,一致则通过。
核心公式:
Hash(包体)>摘要 摘要+私钥>签名 签名+公钥>摘要打包时计算1、2.安装时计算1、3.
公钥哈希指纹是公钥哈希运算得到的短字符串。用于平台识别。
Hash(公钥)>公钥指纹总结:同一个app,更新了:私钥、公钥不变,摘要、签名变。要安装验证,需要检查签名反算出的摘要和用包体算出的摘要一致。非开发者没有私钥,也就无法从摘要算出签名,无法构造合法签名。
关键词
module java xml gradle AndroidManifest.xml acticity onCreate
概述
一个页面是一个activity。AndroidManifest.xml里记录了所有活动的java类名,创建时的生命周期函数里
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity3); }指明了这个类管的页面布局的xml。这样总配置xml、java类、xml布局三者联系了起来。
一个页面布局用一个xml表示。
java通过id找到控件;
values是记录各种常量的文件。
混淆
把有意义的字段名、函数名变成无意义名称,增加解包人阅读源代码的难度。
.gradle
里面是Groovy代码。
Android SDK和第三方SDK
开发软件需要的SDK是Android SDK或者系统SDK,在SDK Manager管理版本。SDK接入指的是第三方SDK,支付宝、微信等。
指定Android SDK
指定下载好的Sdk文件夹
AndroidStudio打包中的问题
下载Gradle失败
重试,下载了40分钟,完成。
解密失败
Gradle版本过低
gradle-wrapper改成
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip
重新build,下载一个小时,然后
下载的Gradle压缩文件可能被损坏
下载太慢了,去Settings里改成使用本地Gradle,构建,还是显示下载Gradle.zip,而且关闭项目没反应,卡死了,杀进程。重开,构建,可以了。