1.Androidä¸APKç¾åå·¥å
·ä¹jarsigneråapksigner详解
2.Android Apk 编译打包流程,看完这篇文章直接变懂哥
3.å¦ä½ä½¿ç¨zipalignå·¥å
·ä¼å
Androidä¸APKç¾åå·¥å ·ä¹jarsigneråapksigner详解
è½¬èª blogs.com/slysky/p/.htmlä¸.å·¥å ·ä»ç»
jarsigneræ¯JDKæä¾çé对jarå ç¾åçéç¨å·¥å ·,
ä½äºJDK/bin/jarsigner.exe
apksigneræ¯Googleå®æ¹æä¾çé对Android apkç¾ååéªè¯çä¸ç¨å·¥å ·,
ä½äºAndroid SDK/build-tools/SDKçæ¬/apksigner.bat
ä¸ç®¡æ¯apkå ,è¿æ¯jarå ,æ¬è´¨é½æ¯zipæ ¼å¼çå缩å ,æ以å®ä»¬çç¾åè¿ç¨é½å·®ä¸å¤(ä» éV1ç¾å),
以ä¸ä¸¤ä¸ªå·¥å ·é½å¯ä»¥å¯¹Android apkå è¿è¡ç¾å.
1.V1åV2ç¾åçåºå«
å¨Android Studioä¸ç¹å»èå Build->Generate signed apk... æå ç¾åæ两ç§ç¾åé项 V1(Jar Signature) V2(Full APK Signature),
ä»Android 7.0å¼å§, è°·æå¢å æ°ç¾åæ¹æ¡ V2 Scheme (APK Signature);
ä½Android 7.0以ä¸çæ¬, åªè½ç¨æ§ç¾åæ¹æ¡ V1 scheme (JAR signing)
V1ç¾å:
V2ç¾å:
V2ç¾åä¼ç¹å¾ææ¾:
注æ:apksignerå·¥å ·é»è®¤åæ¶ä½¿ç¨V1åV2ç¾å,ä»¥å ¼å®¹Android 7.0以ä¸çæ¬
2.zipalignåV2ç¾å
ä½äºAndroid SDK/build-tools/SDKçæ¬/zipalign.exe
zipalign æ¯å¯¹zipå 对é½çå·¥å ·,使APKå å æªå缩çæ°æ®æåºæå对é½,ä»èåå°APPè¿è¡æ¶å åæ¶è
zipalign -v 4 in.apk out.apk //4åè对é½ä¼å
zipalign -c -v 4 in.apk //æ£æ¥APKæ¯å¦å¯¹é½
zipalignå¯ä»¥å¨V1ç¾ååæ§è¡
ä½zipalignä¸è½å¨V2ç¾ååæ§è¡,åªè½å¨V2ç¾åä¹åæ§è¡ï¼ï¼ï¼
äº.ç¾åæ¥éª¤
1.çæå¯é¥å¯¹(å·²æå¯é¥åº,å¯å¿½ç¥)
Android Studioå¨Debugæ¶,对Appç¾åé½ä¼ä½¿ç¨ä¸ä¸ªé»è®¤çå¯é¥åº:
1.çæå¯é¥å¯¹
è¿å ¥JDK/bin, è¾å ¥å½ä»¤
åæ°:
æ示: å¯éå¤ä½¿ç¨æ¤æ¡å½ä»¤,å¨åä¸å¯é¥åºä¸å建å¤æ¡å¯é¥å¯¹
ä¾å¦: å¨debug.keystoreä¸æ°å¢ä¸å¯¹å¯é¥,å«åæ¯release
keytool -genkeypair -keystore debug.keystore -alias release -validity
2.æ¥çå¯é¥åº
è¿å ¥JDK/bin, è¾å ¥å½ä»¤
keytool -list -v -keystore å¯é¥åºå
åæ°:
ä¾å¦:
keytool -list -v -keystore debug.keystore
ç°å¨debug.keystoreå¯é¥åºä¸æ两对å¯é¥, å«ååå«æ¯androiddebugkey release
2.ç¾å
1.æ¹æ³ä¸(jarsigner,åªæ¯æV1ç¾å)
è¿å ¥JDK/bin, è¾å ¥å½ä»¤
ä»JDK7å¼å§, jarsigneré»è®¤ç®æ³æ¯SHA, ä½Android 4.2以ä¸ä¸æ¯æ该ç®æ³,
æ以éè¦ä¿®æ¹ç®æ³, æ·»å åæ° -digestalg SHA1 -sigalg SHA1withRSA
åæ°:
ä¾å¦:
ç¨JDK7å以ä¸jarsignerç¾å,ä¸æ¯æAndroid 4.2 以ä¸
jarsigner -keystore debug.keystore MyApp.apk androiddebugkey
ç¨JDK7å以ä¸jarsignerç¾å,å ¼å®¹Android 4.2 以ä¸
jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey
2.æ¹æ³äº(apksigner,é»è®¤åæ¶ä½¿ç¨V1åV2ç¾å)
è¿å ¥Android SDK/build-tools/SDKçæ¬, è¾å ¥å½ä»¤
è¥å¯é¥åºä¸æå¤ä¸ªå¯é¥å¯¹,åå¿ é¡»æå®å¯é¥å«å
ç¦ç¨V2ç¾å
apksigner sign --v2-signing-enabled false --ks å¯é¥åºå xxx.apk
åæ°:
ä¾å¦:
å¨debug.keystoreå¯é¥åºåªæä¸ä¸ªå¯é¥å¯¹
apksigner sign --ks debug.keystore MyApp.apk
å¨debug.keystoreå¯é¥åºä¸æå¤ä¸ªå¯é¥å¯¹,æä»¥å¿ é¡»æå®å¯é¥å«å
apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk
3.ç¾åéªè¯
1.æ¹æ³ä¸(keytool,åªæ¯æV1ç¾åæ ¡éª)
è¿å ¥JDK/bin, è¾å ¥å½ä»¤
keytool -printcert -jarfile MyApp.apk (æ¾ç¤ºç¾åè¯ä¹¦ä¿¡æ¯)
åæ°:
2.æ¹æ³äº(apksigner,æ¯æV1åV2ç¾åæ ¡éª)
è¿å ¥Android SDK/build-tools/SDKçæ¬, è¾å ¥å½ä»¤
apksigner verify -v --print-certs xxx.apk
åæ°:
ä¾å¦:
apksigner verify -v MyApp.apk
Android Apk 编译打包流程,看完这篇文章直接变懂哥
Android应用编译打包背后的细节,让你瞬间成为内行 在Android开发中,ve源码编译打包是一项耗时的任务,尤其是android课程表源码大型项目。本文将揭示AGP编译过程的奥秘,以及如何优化。 编译打包的流程大致可分为几个关键步骤:资源与代码编译:AAPT2处理APK资源,包括解析、压缩和索引,生成.flat文件和辅助文件(R.java和resources.arsc)。
AIDL文件编译:将AIDL接口编译为Java代码。易语言后台按键源码
Java与Kotlin文件编译:注解处理器生成额外代码。
Class文件打包成DEX:处理.class文件,转化为Dalvik的java植物大战僵尸 源码.dex文件。
D8编译器与R8工具:引入新的编译和混淆工具,优化DEX文件。
生成APK包:将所有编译结果和manifest等打包成APK。房屋租赁管理系统源码
zipalign对齐:确保APK文件结构对齐,提升性能。
签名:Apksigner进行V2或更高版本的签名,确保文件安全。
这些步骤背后,是AGP插件中的多个Task,例如mergeDebugResources对应资源编译,processDebugResources处理资源链接等。 了解这些基础知识对于优化包体积和编译效率至关重要。希望本文能帮助你深入理解Android APK编译打包的全过程。å¦ä½ä½¿ç¨zipalignå·¥å ·ä¼å
1.ä¸è½½android SDKï¼æå¼è¿ é·ç¹å»ç´æ¥ä¸è½½ï¼
2.ä¸è½½åï¼ç´æ¥è§£å软件å°Cçæ ¹ç®å½ä¸ï¼å®çtoolsæ件夹ä¸å°±æzipalignå·¥å ·ï¼ä¸éè¦å®è£ ã
3.æä½ éè¦ä¼åçAPKåºç¨ç¨åºæ·è´å°toolsæ件夹ä¸ï¼æ³¨æè®°ä½è½¯ä»¶çå ¨åã
4.å©ç¨Windowså½ä»¤è¿è¡è°ç¨,å¨è¿è¡ä¸ï¼è¾å ¥CMD ç¹ç¡®å®ï¼
5.æ¤æ¶çå°å½ä»¤è¡ï¼
6.è¾å ¥CD.. å车 CD.. å车 ï¼æ¤ä¸ºç®åçDOSå½ä»¤ï¼è¿å ¥Cçæ ¹ç®å½ä¸ï¼
7.è¾å ¥cd android-sdk-windows å车 åè¾å ¥cd tools å车 ï¼æ¤æ¥éè¿DOSå½ä»¤è¿å ¥toolsæ件夹ï¼
8.æåè¾å ¥zipalign.exe -v 4 QQ_for_Pad_v1.4.1.apk CasonQQ.apk å车ï¼æ¤æ¥éª¤ç®åç说就æ¯å½ä»¤+åæ¥è½¯ä»¶åå+ä¼åå软件ååï¼
9.æå¼toolsæ件夹ï¼åç°ä¼å¤åºäºä¸ä¸ªCasonQQ.apkçåºç¨ç¨åºï¼å°±æ¯ä¼ååç软件
PSï¼æ¤æ¹æ³æ é£é©ï¼å¯å°½æ åæ¥.