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 文件 。