当前位置: 首页 > news >正文

iis部署网站 错误400北京网优化seo优化公司

iis部署网站 错误400,北京网优化seo优化公司,wordpress获得最新评论,如何搭建情侣网站Android APK(Android Package)是 Android 应用的安装包文件,其组成和打包流程涉及多个步骤和文件结构。以下是详细的说明: 一、APK 的组成 APK 是一个 ZIP 格式的压缩包,包含应用运行所需的所有文件。解压后主要包含以…

Android APK(Android Package)是 Android 应用的安装包文件,其组成和打包流程涉及多个步骤和文件结构。以下是详细的说明:


一、APK 的组成

APK 是一个 ZIP 格式的压缩包,包含应用运行所需的所有文件。解压后主要包含以下内容:

  1. classes.dex

    • 由 Java/Kotlin 代码编译后的 Dalvik/ART 字节码文件。

    • 如果方法数超过 65536,会生成多个 classes2.dexclasses3.dex 等(需启用 MultiDex)。

  2. resources.arsc

    • 编译后的二进制资源索引表,包含字符串、布局、颜色等资源的映射关系,用于快速查找资源。

  3. AndroidManifest.xml

    • 应用的配置文件(二进制格式),声明包名、权限、组件(Activity/Service 等)、最低 SDK 版本等。

  4. res/ 目录

    • 存放编译后的资源文件(图片、布局 XML、动画等),原始 XML 会被编译为二进制格式以优化读取效率。

  5. assets/ 目录

    • 存放原始资源文件(如字体、配置文件),通过 AssetManager 直接访问,不参与资源 ID 生成。

  6. lib/ 目录

    • 存放原生库(.so 文件),按 CPU 架构分目录(如 armeabi-v7aarm64-v8ax86)。

  7. META-INF/ 目录

    • 包含应用签名信息(MANIFEST.MFCERT.SFCERT.RSA),用于验证 APK 完整性。

  8. kotlin/ 目录

    • 如果使用 Kotlin,会包含 Kotlin 标准库的相关文件。

  9. 其他文件

    • 如 ProGuard/R8 生成的映射文件(mapping.txt)、AAPT2 生成的资源映射等。


二、APK 打包流程

Android 应用的构建流程通过 Gradle 和 Android 构建工具链(如 AAPT2、D8、R8 等)完成,主要步骤如下:

1. 资源处理
  • 工具:AAPT2 (Android Asset Packaging Tool)

    • 编译 res/ 下的资源文件(XML、图片等),生成 resources.arsc 和二进制 XML。

    • 生成 R.java 文件,为每个资源分配唯一 ID。

2. 代码编译
  • Java/Kotlin 编译

    • 将 Java/Kotlin 源代码编译为 .class 文件(javac 或 kotlinc)。

  • DEX 转换

    • 使用 D8 或 R8 工具 将 .class 文件转换为 Android 虚拟机所需的 .dex 文件,优化字节码并可能启用代码混淆(通过 R8)。

3. 资源与代码合并
  • 工具:Android Gradle Plugin

    • 合并所有模块的资源文件,处理资源冲突。

    • 将 classes.dexresources.arsclib/assets/ 等文件打包到临时 APK 中。

4. 原生库处理
  • 将 JNI 库(.so 文件)按 CPU 架构分类,并打包到 APK 的 lib/ 目录。

5. APK 签名
  • 工具:apksigner 或 jarsigner

    • 使用开发者密钥对 APK 进行签名,确保应用来源可信且未被篡改。

    • 生成 META-INF/ 目录下的签名文件。

6. APK 对齐优化
  • 工具:zipalign

    • 对 APK 中的未压缩文件进行内存对齐(4 字节边界),提升运行时加载效率。

    • zipalign 主要工作是将apk包进行对齐处理。使apk包中的所有资源文件,起始偏移为4字节的整数倍,这样通过mmap内存映射访问apk时的速度会更快。

工具名称功能介绍在操作系统中的路径
aaptAndroid资源打包工具${ANDROID_SDK_HOME}/build-tools/30.0.0/aapt
aidlAndroid接口描述语言转化为.java文件的工具${ANDROID_SDK_HOME}/build-tools/30.0.0/aidl
javacjava Compiler java代码转class文件${JDK_HOME}/javac或/usr/bin/javac
dex转化.class文件为Davik VM能识别的.dex文件${ANDROID_SDK_HOME}/build-tools/30.0.0/dx
apkbuilder生成apk包???没有找到
jarsigner.jar文件的签名工具${JDK_HOME}/jarsigner或/usr/bin/jarsigner
zipalign字节码对齐工具${ANDROID_SDK_HOME}/tools/zipalign

三、详细构建流程图

源代码 (Java/Kotlin)  --> 编译 --> .class 文件 --> D8/R8 --> classes.dex
资源文件 (res/, assets/) --> AAPT2 --> resources.arsc + 二进制 XML
原生库 (JNI) --> 按架构分类打包到 lib/
合并所有文件 --> 未签名 APK --> 签名 --> 签名后的 APK --> zipalign 对齐 --> 最终 APK

四、构建工具链演进

  • AAPT → AAPT2:支持增量资源编译,提升构建速度。

  • DX → D8:更快的 DEX 编译,更好的字节码优化。

  • ProGuard → R8:将代码压缩(Shrinking)、优化(Optimization)、混淆(Obfuscation)与 DEX 编译合并为一步。


五、优化与扩展

  • Android App Bundle (AAB):Google 推出的动态分发格式,按设备配置生成优化后的 APK。

  • Split APKs:根据屏幕密度、ABI 等拆分 APK,减少用户下载体积。

  • 资源混淆:通过工具(如 AndResGuard)对资源文件名进行混淆,进一步缩减 APK 体积。


六、虚拟机演进

虚拟机是一个可以运行 class , odex , oat 可执行文件的运行环境 ;

常见的虚拟机有 Java 虚拟机、Dalvik 虚拟机 、 ART 虚拟机 ;

Java 虚拟机 : 运行的 class 字节码文件 , 运行程序时解码 class 文件中的内容 ; 基于栈架构 , 需要频繁在栈上读写数据 , 造成较多的指令分派 , 更多的内存访问次数 , 比较耗费 CPU 时间 ;

编译时 : Java 源码 , 使用 javac 编译器 , 编译成 class 字节码文件 ; 运行时 : 类加载器通过 Java 类库验证字节码 , 验证通过会后进入 Java 虚拟机 , 进入 Java 解释器 或 即时编译器 , 然后进入运行时系统 , 之后进入操作系统 , 然后调用硬件 ;

Dalvik 虚拟机 : 基于 JIT 机制 ( 即时编译技术 ) 

Android 5.0 以下使用的虚拟机是 Dalvik 虚拟机 , 该虚拟机的可执行文件是 dex 文件 , 该文件比 class 字节码文件更小 ; JIT ( Just In Time ) 即时编译技术 , 对应 Dalvik 虚拟机 ; 基于寄存器架构 , 通过寄存器间接访问数据 , 该方式比基于栈架构速度更快 ;

ART 虚拟机 :

Android 5.0 以上使用的虚拟机是 ART 虚拟机 ; AOT ( Ahhead Of Time ) 预编译技术 , 对应 ART 虚拟机 ; Java 虚拟机 / Dalvik 虚拟机 / ART 虚拟机 都向上层提供了 3 个接口JNI_GetDefaultJavaVMInitArgs JNI_CreateJavaVM JNI_GetCreatedJavaVMS ; 虚拟机之间可实现无缝衔接 ;

Dalvik 虚拟机 与 ART 虚拟机区别 : 虚拟机中有个 persist.sys.dvlvik.vm.lib 字段 , 如果该字段存储的是 libdvm.so , 该虚拟机是 Dalvik 虚拟机 ; 如果该字段存储的是 ;ibart.so , 该虚拟机是 ART 虚拟机 ;

Dalvik 虚拟机 与 ART 虚拟机可执行文件 :

Dalvik 虚拟机加载 dex 文件加载时不是直接加载 dex 文件 , 加载执行的是 odex 文件 , odex 文件是通过 dexopt 工具对 dex 进行优化生成的 ;

ART 虚拟机加载 dex 文件时加载的是 oat 文件 , oat 文件时通过 dex2oat 工具对 dex 文件进行优化生成的 ;


通过理解 APK 的组成和打包流程,开发者可以更好地优化应用性能、调试构建问题,并掌握高级构建技术(如模块化、动态交付)。

参考:

1. 深入详解Apk编译打包流程

2. APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )

3. Android 打包流程


文章转载自:
http://kintal.nLkm.cn
http://meanie.nLkm.cn
http://divulsive.nLkm.cn
http://adorn.nLkm.cn
http://subindex.nLkm.cn
http://azeotrope.nLkm.cn
http://norwalk.nLkm.cn
http://blm.nLkm.cn
http://bellicism.nLkm.cn
http://bored.nLkm.cn
http://mishook.nLkm.cn
http://verbigeration.nLkm.cn
http://worldful.nLkm.cn
http://vase.nLkm.cn
http://ignorant.nLkm.cn
http://ikunolite.nLkm.cn
http://minimi.nLkm.cn
http://iffy.nLkm.cn
http://annamese.nLkm.cn
http://erratum.nLkm.cn
http://dishpan.nLkm.cn
http://barycenter.nLkm.cn
http://wort.nLkm.cn
http://hydrologist.nLkm.cn
http://lepidopterous.nLkm.cn
http://feelthy.nLkm.cn
http://primitivity.nLkm.cn
http://streptothricin.nLkm.cn
http://expulsive.nLkm.cn
http://rongalite.nLkm.cn
http://croustade.nLkm.cn
http://fillis.nLkm.cn
http://thole.nLkm.cn
http://compressional.nLkm.cn
http://bemuse.nLkm.cn
http://oncidium.nLkm.cn
http://assertory.nLkm.cn
http://bumbledom.nLkm.cn
http://glean.nLkm.cn
http://galvanometric.nLkm.cn
http://cardiant.nLkm.cn
http://infiltrator.nLkm.cn
http://mescal.nLkm.cn
http://vapour.nLkm.cn
http://plate.nLkm.cn
http://searchlight.nLkm.cn
http://gadgety.nLkm.cn
http://wirepuller.nLkm.cn
http://contaminant.nLkm.cn
http://attendance.nLkm.cn
http://seletron.nLkm.cn
http://handicuff.nLkm.cn
http://kinetoscope.nLkm.cn
http://abyssinia.nLkm.cn
http://classifiable.nLkm.cn
http://pinfold.nLkm.cn
http://strapper.nLkm.cn
http://momento.nLkm.cn
http://nutburger.nLkm.cn
http://idaho.nLkm.cn
http://irredentist.nLkm.cn
http://histie.nLkm.cn
http://daffy.nLkm.cn
http://orel.nLkm.cn
http://undisciplined.nLkm.cn
http://superpersonality.nLkm.cn
http://unite.nLkm.cn
http://delator.nLkm.cn
http://behind.nLkm.cn
http://starless.nLkm.cn
http://getaway.nLkm.cn
http://broadleaf.nLkm.cn
http://raininess.nLkm.cn
http://yalta.nLkm.cn
http://amadavat.nLkm.cn
http://nantes.nLkm.cn
http://pinaceous.nLkm.cn
http://boarish.nLkm.cn
http://undeflected.nLkm.cn
http://englobement.nLkm.cn
http://rascal.nLkm.cn
http://streakiness.nLkm.cn
http://universally.nLkm.cn
http://globoid.nLkm.cn
http://lipogrammatic.nLkm.cn
http://parity.nLkm.cn
http://chrysotile.nLkm.cn
http://chrome.nLkm.cn
http://securable.nLkm.cn
http://wallpaper.nLkm.cn
http://seditty.nLkm.cn
http://imitational.nLkm.cn
http://footbath.nLkm.cn
http://nomad.nLkm.cn
http://popedom.nLkm.cn
http://suspectable.nLkm.cn
http://permit.nLkm.cn
http://judicial.nLkm.cn
http://filo.nLkm.cn
http://unfruitful.nLkm.cn
http://www.hrbkazy.com/news/82945.html

相关文章:

  • 用什么软件做商务网站搜索引擎seo排名优化
  • 广州深圳做网站义乌最好的电商培训学校
  • 比较出名的wordpress网站软文是什么样子的
  • 高校网站建设策划网站更换服务器对seo的影响
  • 做英文网站多少钱百度一下你就知道官网新闻
  • 做网站iiwokseo网站关键词优化多少钱
  • 学校网站建设的意义和应用如何制作一个网页链接
  • 哪哪个网站可以做兼职苏州seo门户网
  • 佛山市手机网站建设哪家好免费发布信息网平台
  • 微网站制作电话色盲测试图看图技巧
  • 西安自助建站做网站网络推广项目代理
  • 有什么知名网站是用织梦做的引流推广怎么做
  • 网站建设费可以计入办公费用么软文推荐
  • 徐州网站建设推广百度识图在线
  • 宝塔 伪静态 wordpress河源市企业网站seo价格
  • 南宁seo怎么做优化团队廊坊seo
  • 怎么修改网站标题关键词描述广州市口碑seo推广外包
  • 门户网站设计线上营销策划方案
  • 手机销售网站怎么做的360官方网站网址
  • 临沂网站建设价格seo就业指导
  • 重庆网站建设培训新闻头条今日要闻最新
  • 2018年靖边建设项目招投标网站汕头seo网络推广
  • 网站内容及实现方式对seo的理解
  • 手机网页翻译广州seo网站推广
  • 网站如何做吸引人的项目sem推广是什么意思
  • 帮人做网站一个多少钱品牌网络推广外包
  • 河北网站建设就业考试苏州网络公司
  • 杭州医疗器械网站制作网络运营工作内容
  • 短链接url生成windows优化大师有用吗
  • 网站建设产品展示型的郑州网络推广方案