-I

search path for import statements.

-d generate dependency file.

-p file created by --preprocess to import.

-o base output folder for generated files.

-b fail when trying to compile a parcelable.

值得注意的是:这个工具的参数与参数值之间不能有空格

这里是将testService转化成java文件的例子。

3、javac编译java文件


这一步java compiler编译源代码生成字节码。

javac的参数有下面:

-g 生成所有调试信息

-g:none 不生成任何调试信息

-g:{lines,vars,source} 只生成某些调试信息

-nowarn 不生成任何警告

-verbose 输出有关编译器正在执行的操作的消息

-deprecation 输出使用已过时的 API 的源位置

-classpath <路径> 指定查找用户类文件和注释处理程序的位置

-cp <路径> 指定查找用户类文件和注释处理程序的位置

-sourcepath <路径> 指定查找输入源文件的位置

-bootclasspath <路径> 覆盖引导类文件的位置

-extdirs <目录> 覆盖安装的扩展目录的位置

-endorseddirs <目录> 覆盖签名的标准路径的位置

-proc:{none,only} 控制是否执行注释处理和/或编译。

-processor [,,…]要运行的注释处理程序的名称;绕过默认的搜索进程

-processorpath <路径> 指定查找注释处理程序的位置

-d <目录> 指定存放生成的类文件的位置

-s <目录> 指定存放生成的源文件的位置

-implicit:{none,class} 指定是否为隐式引用文件生成类文件

-encoding <编码> 指定源文件使用的字符编码

-source <版本> 提供与指定版本的源兼容性

-target <版本> 生成特定 VM 版本的类文件

-version 版本信息

-help 输出标准选项的提要

-Akey[=value] 传递给注释处理程序的选项

-X 输出非标准选项的提要

-J<标志> 直接将 <标志> 传递给运行时系统

4、将.class转化为DVM识别的.dex文件


DVM是不识别.class的,所以要通过dex工具将java字节码转化成dex字节码。

dex文件在SDK文件的dx下,下面是转化一个.class文件

5、打包生成.apk文件


向apkbuilder中传入的参数为:

  1. 之前打包的的资源文件(gen目录下)

  2. 之前生成的.dex文件

  3. libs文件(比如jni/ndk中的so库,如果没有用到就不会传入)

通过apkbuilder产生一个没有签名的apk

6、对apk文件签名


使用jarsigner对apkbuilder产生的apk进行签名

用到的参数有:

用法:jarsigner [选项] jar 文件别名

[-keystore ] 密钥库位置

[-storepass <口令>] 用于密钥库完整性的口令

[-storetype <类型>] 密钥库类型

[-keypass <口令>] 专用密钥的口令(如果不同)

[-sigfile <文件>] .SF

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

/.DSA 文件的名称

[-signedjar <文件>] 已签名的 JAR 文件的名称

[-digestalg <算法>] 摘要算法的名称

[-sigalg <算法>] 签名算法的名称

[-verify] 验证已签名的 JAR 文件

[-verbose] 签名/验证时输出详细信息

[-certs] 输出详细信息和验证时显示证书

[-tsa ] 时间戳机构的位置

[-tsacert <别名>] 时间戳机构的公共密钥证书

[-altsigner <类>] 替代的签名机制的类名

[-altsignerpath <路径列表>] 替代的签名机制的位置

Apk的编译打包过程,高级android面试题相关推荐

  1. Apk的编译打包过程

    今天跟着大佬的Blog来学习一下 Apk打包编译的流程.传送门 流程图 上图中的绿色部分就是APK编译打包的工具.从图中可以知道使用的工具有: APPT.AIDL.Java Compiler(java ...

  2. android apk编译打包过程

    Android安装包的后缀都是.apk, apk是Android Package的缩写. 解压apk文件后包含AndroidManifest.xml.assets目录.classes.dex(还可能有 ...

  3. android apk反编译打包签名

     APK反编译打包签名 一.JDK安装和环境配置 1. jdk1.6下载地址:http://download.java.net/jdk6/   jdk-6u17-windows-i586.exe 2. ...

  4. Storm编译打包过程中遇到的一些问题及解决方法

    Storm编译打包过程中遇到的一些问题及解决方法 参考文章: (1)Storm编译打包过程中遇到的一些问题及解决方法 (2)https://www.cnblogs.com/panfeng412/p/s ...

  5. Android应用程序(APK)的编译打包过程

    前言 android系统上所识别的安装包后缀名为.apk 1.通过aapt工具打包资源文件和清单文件到R.java中. 2.通过aidl工具将aidl文件转为java文件 3.上面所产生的java文件 ...

  6. gradle编译打包过程 之 ProcessAndroidResources的源码分析

    首先,如何查看gradle源码,我们在项目里依赖com.android.tools.build:gradle即可,如下: compile gradleApi() compile 'com.androi ...

  7. 华为、TCL、大疆,高级android面试题2019

    7apk编译打包流程 V1,V2 签名区别 8.如果一个app无法访问网络,你怎么做数据存储. 9.handler中loop方法为什么不会导致线程卡死,动画的原理,有没有实战过补间动画:bugly上面 ...

  8. python手册中文版apk-用 Python 完成 Android apk 的编译打包

    吐槽 其实当我写完之后,发现并没有什么卵用233 我最一开始想的是每一次在 Github 上发现好玩的 Android 应用,都要下载下来,然后 Gradle build 老半天,其中还要改一些参数, ...

  9. 基于命令行编译打包phonegap for android应用

    也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...

最新文章

  1. php 二维数组排序函数,php自定义二维数组排序函数array
  2. 传智播客java基础的习题_传智播客java基础班(集合与IO)阶段测试题
  3. CentOS 7 - 最小化安装后,解决无法使用yum命令问题!!
  4. JUnit单元测试--IntelliJ IDEA
  5. MySQL - 高效的设计MySQL库表
  6. 设计模式C++实现(3)——适配器模式
  7. java 表单请求_java模拟表单请求
  8. QQ空间说说的表情添加的代码
  9. 计算机视觉对扫描文件分类 OCR
  10. Zookeeper权限控制ACL详解
  11. machine learning (7)---normal equation相对于gradient descent而言求解linear regression问题的另一种方式...
  12. fpgrowth算法c语言,关联分析:Apriori和FPgrowth算法原理
  13. 如何用python做前端_python 适合做什么开发 python是用于前端还是后端开发
  14. java 坐标转换_java – 将图像X,Y坐标转换为经度和纬度?
  15. UE4 Text Render 中文字体制作
  16. gem5中的O3 Pipeline Viewer Visualization实现方法
  17. win7鼠标右键无响应修复
  18. java简单播放器涉及与实现
  19. [转]关于iOS多线程,你看我就够了
  20. 越吃越年轻的26种抗衰老食物

热门文章

  1. 超简单,只需十分钟即可从App Store退款,附无法拒绝的退款理由
  2. asp.net mvc网站 HTTP 错误 403.14–Forbidden错误解决
  3. pycharm执行python时报错,Intel的mkl服务包如何安装?
  4. 中北信商2019年计算机考试题,中北信商高数习题答案.doc
  5. 关于FixedUpdate,Update,LateUpdate
  6. 【华为云数据库技术大公开】机房失火后,还能拯救你的数据吗?
  7. 360关键词指数查询易语言代码
  8. 云呐|动环监控有什么作用?动环监控系统的监控对象有哪些?
  9. 瑞芯微读取寄存器_经验-瑞芯微RK3399嵌入式开发板调试方法-电路城论坛 - 电子工程师学习交流园地...
  10. Heic图片转换精灵无损转换JPG/PNG/BMP方法