Skip to content

Apk应用目录结构

更新时间:2025-03-31

多语言目录

  • 多国语言value文件夹命名方式
语言文件夹语言文件夹
中文(中国)values-zh-rCN法文(法国)values-fr-rFR
中文(香港)values-zh-rHK希伯来文values-iw-rIL
中文(台湾)values-zh-rTW印地文values-hi-rIN
英语(美国values-en-rUS克罗里亚文values-hr-rHR
英语(英国)values-en-rGB匈牙利文values-hu-rHU
英文(澳大利亚)values-en-rAU印度尼西亚文values-in-rID
英文(加拿大)values-en-rCA意大利文(瑞士)values-it-rCH
英文(爱尔兰)values-en-rIE意大利文(意大利)values-it-rIT
英文(印度)values-en-rIN日文values-ja-rJP
英文(新西兰)values-en-rNZ韩文values-ko-rKR
英文(新加坡)values-en-rSG立陶宛文valueslt-rLT
英文(南非)values-en-rZA拉脱维亚文values-lv-rLV
阿拉伯文(埃及)values-ar-rEG挪威博克马尔文values-nb-rNO
阿拉伯文(以色列)values-ar-rIL荷兰文(比利时)values-nl-BE
保加利亚文values-bg-rBG荷兰文(荷兰)values-nl-rNL
加泰罗尼亚文values-ca-rES波兰文values-pl-rPL
捷克文values-cs-rCZ葡萄牙文(巴西)values-pt-rBR
丹麦文values-da-rDK葡萄牙文(葡萄牙)values-pt-rPT
德文(奥地利)values-de-rAT罗马尼亚文values-ro-rRO
德文(瑞士)values-de-rCH俄文values-ru-rRU
德文(德国)values-de-rDE斯洛伐克文values-sk-rSK
德文(列支敦士登)values-de-rLI斯洛文尼亚文values-sl-rSI
希腊文values-el-rGR塞尔维亚文values-sr-rRS
西班牙文(西班牙)values-es-rES瑞典文values-sv-rSE
西班牙文(美国)values-es-rUS泰文values-th-rTH
芬兰文(芬兰)values-fi-rFI塔加洛语values-tl-rPH
法文(比利时)values-fr-rBE土耳其文values–r-rTR
法文(加拿大)values-fr-rCA乌克兰文values-uk-rUA
法文(瑞士)values-fr-rCH越南文values-vi-rVN

APP编译模式

  • 执行getprop | grep pm命令即可查看

主题样式

  • Android中定义的系统主题样式
Style属性android:theme=*样式说明
theme="@android:style/Theme.Dialog"将Activity显示为对话框模式
theme="@android:style/Theme.NoTitleBar"不显示应用程序标题栏
theme="@android:style/Theme.NoTitleBar.Fullscreen"不显示应用程序标题栏,并全屏
theme="@android:style/Theme.Light"背景为白色
theme="@android:style/Theme.Light.NoTitleBar"白色背景并无标题栏
theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"白色背景,无标题栏,全屏
theme="@android:style/Theme.Black"背景黑色
theme="@android:style/Theme.Black.NoTitleBar"黑色背景并无标题栏
theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"黑色背景,无标题栏,全屏
theme="@android:style/Theme.Wallpaper"用系统桌面为APP背景
theme="@android:style/Theme.Wallpaper.NoTitleBar"用桌面为APP背景,且无标题栏
theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"桌面为APP背景,无标题栏全屏
theme="@android:style/Translucent"半透明效果
theme="@android:style/Theme.Translucent.NoTitleBar"半透明并无标题栏
theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"半透明效果,无标题栏,全屏
theme="@android:style/Theme.Panel"
  • Android系统中三种字体大小
xml
android:textSize="?android:attr/textAppearanceLarge"
android:textSize="?android:attr/textAppearanceMedium"
android:textSize="?android:attr/textAppearanceSmall"
  • Android系统中字体颜色定义
xml
android:textColor="?android:attr/textColorPrimary"
android:textColor="?android:attr/textColorSecondary"
android:textColor="?android:attr/textColorTertiary"
android:textColor="?android:attr/textColorPrimaryInverse"
android:textColor="?android:attr/textColorSecondaryInverse"
  • Android系统中ProgressBar样式
xml
style="?android:attr/progressBarStyleHorizontal"
style="?android:attr/progressBarStyleLarge"
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyleSmallTitle"
  • 其他更多Style
xml
style="?android:attr/starStyle"						#CheckBox样式
android:background="?android:attr/listDivider"		#分隔符
style="?android:attr/listSeparatorTextViewStyle"	#标题栏效果的TextView
<item name="android:background">#778899</item>
<item name="android:windowTitleSize">32dp</item>
<item name="android:windowTitleBackgroundStyle">@style/AutoWindowTitleBackground</item>

手动构建Apk

注意

需要准备AndroidSDK以及AAPT工具

  • 生成资源文件
sh
aapt package -f -m -J gen -M AndroidManifest.xml -S res -I $SDK/platforms/android-33/android.jar -F bin/resources.ap_
  • 编译本地库,如果有的话就用SDK中的aidl工具编译

  • 编译Java代码并生成dex

sh
javac -source 1.8 -target 1.8 -bootclasspath $SDK/platforms/android-33/android.jar -d bin/classes src/com/myapp/*.java gen/com/myapp/R.java
dx.bat --dex --output=bin/classes.dex bin/classes/
  • 打包APK
sh
aapt package -f -M AndroidManifest.xml -S res -A assets -I $SDK/platforms/android-33/android.jar -F bin/unsigned.apk
cd bin && zip -qr unsigned.apk classes.dex
  • 签名APK与对齐
sh
apksigner sign --ks debugkey.jks --out signed.apk unsigned.apk
zipalign -v -p 4 signed.apk final.apk
  • AAPT工具使用扩展
sh
aapt v				# 版本
aapt l -v my.apk	# 表格形式列出APK内容,详细-a
aapt d badging my.apk		#显示包名标签图标等信息
aapt d permissions my.apk	#显示应用所具有的权限信息
aapt d configurations my.apk					#显示应用的配置信息
aapt d xmltree my.apk AndroidManifest.xml		#以树形显示某个XML文件
aapt d xmlstrings my.apk AndroidManifest.xml	#显示某个XML文件中所有字符
aapt r my.apk classes.dex		#从APK包中移除某个文件
aapt a my.apk classes.dex		#向APK包中添加某个文件

Copyright © manosP . 2023