A. android studio iml文件需不需要上传
不需要。编译后自动生成,其中内容有一些本地信息,不同电脑上会不一致,所以没有上传的必要。
B. androidstudio项目签名打包生成apk出错整理
本人由于一些误操作接触到打包文件的问题,故作此文避免再次踩坑。
1.入口:build->generate signed bundle/APK,打开后如下图1.1:
2.选中apk打包,进入next:
3.选择打包类型:
4.箭头所指即为生成的混淆+签名后的打包apk文件。(*签名文件不可以随便更改,如果有申请第三方的功能,都需要这个签名文件去检验的,比如说集成了微信支付,我们汪判换签名文件的话,微信那边就会检验不通过)
5.本文重点并非上述步骤,而是我自己重新生成了一个密钥后,打包文件变成了.aab后缀文件。于是我想研究下它的打包过程和原理:
5.1在我们的build.gradle中可以更新打包文件版本号名称(自己配一下):
5.2签名文件会在此处进行对应生成信息:
5.3当然,你的项目文件也会对应生成相应的签名文件,例如我此处的文件为yoocarjks.jks:
5.4自己配一下打包生成文件的命名:
以上over
6.*问题点:
6.1.签名文件生成的乱码是些啥?
6.2.由于我当时把项目扔垃圾桶了,还有些文件并没有搞清楚是干嘛的,如下图:
buildoutputcleanuo.lock/executionhistory.bin/executionhistory.lock/filehashes.bin/filehashes.lock/outputfiles.bin/xxx.app.iml这些文件分别干嘛的,从包名看像是打包生成的文件。
作此文激励下自己空了去学习查阅弯桐下,若有知道的小伙伴欢迎留言分埋陵坦享~此文会继续追更~
7.1关于xxx.app.iml看到一篇不错的出错解决方案:
https://blog.csdn.net/qq_38998213/article/details/81907253
设计原理如下:
这个文件,后续遇到问题我再深入了解下
C. Android Studio 3.5导入AOSP编译的classes.jar
一、适用场景
我们在写应用时可能会需要调用系统隐藏的API,这些API是我们无法直接访问的,报如下错误:
此时,我们需要将系统AOSP的out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar导入到Android Studio中,使app能够访问这些接口。
二、实现步骤
Step1 . 在app目录下建立libs文件夹,并将classes.jar包放入该路径
Step2 .在app目录上右键【Open Mole Settings】,点击左侧【Dependencies】,选择app,点击【+】选择【2 Jar Dependency】,添加
选择我们的libs/classes.jar,点击【OK】
Step3 .在Mole的build.gradle中,dependencies自动增加依赖配置,注释掉下面一行
implementation fileTree(dir: 'libs', include: ['*.jar'])
并将implementation files('libs/classes.jar')改为
compileOnly files('libs/classes.jar')
最终如下图所示
Step4 .修改Project的build.gradle,在allProjects中增加如下语句
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\classes.jar')
}
}
Step5 .修改jar包优先级,在Moels的app.iml文件中找到我们的classes.jar包所在行,
<orderEntry type="library" name="Gradle: __local_aars__:/Users/mrwong/AndroidStudioProjects/uart_daemon/app/libs/classes.jar:unspecified@jar" level="project" />
将其移动到
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
这一行之上,最终如下图所示:
至此,app可以优先访问我们自己的jar包 。
D. 安卓手机如何打开.iml文件
iml 文件 重新生成了。... 新建 android Studio功能,哪怕添加gitignore也会将 ... moles.x ml 文件 我们在Intellij Idea中打开moles 文件 。