Apk的编译打包过程,高级android面试题
-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中传入的参数为:
之前打包的的资源文件(gen目录下)
之前生成的.dex文件
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面试题相关推荐
- Apk的编译打包过程
今天跟着大佬的Blog来学习一下 Apk打包编译的流程.传送门 流程图 上图中的绿色部分就是APK编译打包的工具.从图中可以知道使用的工具有: APPT.AIDL.Java Compiler(java ...
- android apk编译打包过程
Android安装包的后缀都是.apk, apk是Android Package的缩写. 解压apk文件后包含AndroidManifest.xml.assets目录.classes.dex(还可能有 ...
- android apk反编译打包签名
APK反编译打包签名 一.JDK安装和环境配置 1. jdk1.6下载地址:http://download.java.net/jdk6/ jdk-6u17-windows-i586.exe 2. ...
- Storm编译打包过程中遇到的一些问题及解决方法
Storm编译打包过程中遇到的一些问题及解决方法 参考文章: (1)Storm编译打包过程中遇到的一些问题及解决方法 (2)https://www.cnblogs.com/panfeng412/p/s ...
- Android应用程序(APK)的编译打包过程
前言 android系统上所识别的安装包后缀名为.apk 1.通过aapt工具打包资源文件和清单文件到R.java中. 2.通过aidl工具将aidl文件转为java文件 3.上面所产生的java文件 ...
- gradle编译打包过程 之 ProcessAndroidResources的源码分析
首先,如何查看gradle源码,我们在项目里依赖com.android.tools.build:gradle即可,如下: compile gradleApi() compile 'com.androi ...
- 华为、TCL、大疆,高级android面试题2019
7apk编译打包流程 V1,V2 签名区别 8.如果一个app无法访问网络,你怎么做数据存储. 9.handler中loop方法为什么不会导致线程卡死,动画的原理,有没有实战过补间动画:bugly上面 ...
- python手册中文版apk-用 Python 完成 Android apk 的编译打包
吐槽 其实当我写完之后,发现并没有什么卵用233 我最一开始想的是每一次在 Github 上发现好玩的 Android 应用,都要下载下来,然后 Gradle build 老半天,其中还要改一些参数, ...
- 基于命令行编译打包phonegap for android应用
也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...
最新文章
- php 二维数组排序函数,php自定义二维数组排序函数array
- 传智播客java基础的习题_传智播客java基础班(集合与IO)阶段测试题
- CentOS 7 - 最小化安装后,解决无法使用yum命令问题!!
- JUnit单元测试--IntelliJ IDEA
- MySQL - 高效的设计MySQL库表
- 设计模式C++实现(3)——适配器模式
- java 表单请求_java模拟表单请求
- QQ空间说说的表情添加的代码
- 计算机视觉对扫描文件分类 OCR
- Zookeeper权限控制ACL详解
- machine learning (7)---normal equation相对于gradient descent而言求解linear regression问题的另一种方式...
- fpgrowth算法c语言,关联分析:Apriori和FPgrowth算法原理
- 如何用python做前端_python 适合做什么开发 python是用于前端还是后端开发
- java 坐标转换_java – 将图像X,Y坐标转换为经度和纬度?
- UE4 Text Render 中文字体制作
- gem5中的O3 Pipeline Viewer Visualization实现方法
- win7鼠标右键无响应修复
- java简单播放器涉及与实现
- [转]关于iOS多线程,你看我就够了
- 越吃越年轻的26种抗衰老食物
热门文章
- 超简单,只需十分钟即可从App Store退款,附无法拒绝的退款理由
- asp.net mvc网站 HTTP 错误 403.14–Forbidden错误解决
- pycharm执行python时报错,Intel的mkl服务包如何安装?
- 中北信商2019年计算机考试题,中北信商高数习题答案.doc
- 关于FixedUpdate,Update,LateUpdate
- 【华为云数据库技术大公开】机房失火后,还能拯救你的数据吗?
- 360关键词指数查询易语言代码
- 云呐|动环监控有什么作用?动环监控系统的监控对象有哪些?
- 瑞芯微读取寄存器_经验-瑞芯微RK3399嵌入式开发板调试方法-电路城论坛 - 电子工程师学习交流园地...
- Heic图片转换精灵无损转换JPG/PNG/BMP方法