java打包dex_Android 命令行编译、打包生成apk文件
一、搭建搭建环境
1. 安装JDK 和 Android SDK
2. 配置环境变量
D:\android-sdk-windows\tools
C:\Program Files\Java\jdk1.6.0_20\bin
3. 例子信息
项目目录:D:\ProjectDemo
SDK目录 :D:\android-sdk-windows\platforms\android-8\
二、命令行编译Android项目
1. 生成R文件
2. Java代码生成class文件
3. class文件生成dex文件
4. 打包资源
5. 生成apk
6. 创建密匙
7. 签名apk
1. aapt命令, 生成R文件
> aapt package -f -m -J ./gen -S res -M AndroidManifest.xml -I D:\android.jar
-f 如果编译生成的文件已经存在,强制覆盖。
-m 使生成的包的目录存放在-J参数指定的目录
-J 指定生成的R.java 的输出目录路径
-S 指定res文件夹的路径
-I 指定某个版本平台的android.jar文件的路径
-A 指定assert文件夹的路径
2. javac命令,生成class文件
> javac -target 1.5 -bootclasspath D:\android-sdk-windows\platforms\android-8\android.jar -d bin src\demo\project\*.java gen\demo\project\R.java
-target 生成特定 VM 版本的类文件
-bootclasspath 覆盖引导类文件的位置
-d 指定存放生成的类文件的位置
-sourcepath 指定查找输入源文件的位置
3. dx 命令,把class文件转换为.dex文件
> dx --dex --output=D:\ProjectDemo\bin\classes.dex D:\ProjectDemo\bin
--output=
4. aapt命令,打包资源
> aapt package -f -M AndroidManifest.xml -S res -I D:\android-sdk-windows\platforms\android-8\android.jar -F bin\resources.ap_
-f 如果编译生成的文件已经存在,强制覆盖
-M 指定AndroidManifest.xml的路径
-S 指定res文件夹路径
-I 指定某个版本平台的android.jar的路径
-F 指定输出文件完整路径
5. apkbuilder命令,生成apk
apkbuilder D:\ProjectDemo\bin\projectdemo.apk -v -u -z D:\ProjectDemo\bin\resources.ap_ -f D:\ProjectDemo\bin\classes.dex -rf D:\ProjectDemo\src
-v Verbose 显示过程信息
-u 创建一个无签名的包
-z 指定apk资源路径
-f 指定dex文件路径
-rf 指定源码路径
6. 创建密钥
>keytool -genkey -alias release -keyalg RSA -validity 20000 -keystore release.keystore
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
7. 签名
jarsigner -verbose -keystore C:\Users\UserName\Desktop\build\release.keystore -storepass antmima -keypass antmima -signedjar D:\ProjectDemo\bin\projectdemo-signed.apk D:\ProjectDemo\bin\projectdemo.apk release
-verbose 签名/验证时输出详细信息
-keystore 密钥库位置
-storepass 用于密钥库完整性的口令
-keypass 专用密钥的口令(如果不同)
-signedjar 已签名的 JAR 文件的名称 (第一个apk是签名之后的文件, 第二个apk是需要签名的文件)
java打包dex_Android 命令行编译、打包生成apk文件相关推荐
- 基于命令行编译打包phonegap for android应用
也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...
- android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...
默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 比如 C:\Users\chengcj1.android\debug.keystore 1. ...
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
网上的MapReduce WordCount教程对于如何编译WordCount.java几乎是一笔带过- 而有写到的,大多又是 0.20 等旧版本版本的做法,即 javac -classpath /u ...
- 命令行编译java项目_命令行编译运行java工程(转)
平时建立Java工程都是借助eclipse或intellij这些ide编辑器来构建,对于java工程的实际编译执行原理,从未了解过.作为一个曾经的C++程序员,对于源码刨根问底的那份执着从未丢过.于是 ...
- Java script生成apk_Android 命令行编译、打包生成apk文件
一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...
- Java 命令行编译项目
如果是用Exlipse, 第三方的包可以放在eclipse文件夹的jre包的lib文件夹中! (初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像 ...
- andriod 自编译,打包生成apk文件--------------------cocos2d-x 3.0正式版本(7.7)
一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html 之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...
- 命令行下打包Qt程序
命令行下打包Qt程序 上一节我们说了 命令行下编译Qt程序 https://blog.csdn.net/weixin_42837024/article/details/81945656 现在基于上次继 ...
最新文章
- window.location.Reload()和window.location.href 区别
- CentOS 7.2搭建NFS并使用
- 必须重启计算机才能关闭用户控制,Win10如何彻底关闭用户帐户控制?Win10关闭用户控制方法...
- 部署Apache服务器
- 学习笔记【2010/09/20-2010/11/27】
- arrylist和linked list区别
- 判断两颗棵二叉树是否相等
- linux内核支持2t,Linux 支持2T磁盘分区
- powerdesigner辅助导入导出excel文件
- 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...
- 【Clickhouse】ClickHouse REST API(HTTP接口)及Engine引擎的使用
- c++界面设计皮肤工具
- 图形验证码实现(代码)
- JAVA期末考广东科技学院,我是叩丁狼广州Java老学员,我来说说自己的故事
- Makefile中的wildcard用法
- UE4中程序驱动的LookAt动画
- HP laser 108W无线连接
- html5 游戏 闪退,WeGame闪退怎么办?WeGame闪退的六种解决办法
- BK芯片,Wi-Fi6-数传ble-BK7256 BK7235 BK7258 BK7231 BK3633 BK3432 BK3437 BL2028
- 十秒钟入门一分钟搭建Discuz论坛
热门文章
- 提升系统 10 倍性能的 10 个建议!
- Hystrix降级逻辑中如何获取触发的异常?
- $.ajax的type属性,$.ajax中contentType属性为“application/json”和“application/x-www-form-urlencoded”的区别...
- java中日期怎么比较_如何比较Java中的日期?
- 1使用帝国cms开发微信小程序之开发前的约定
- Don‘t support broadcast for binaryOp,
- 即插即用 | S-FPN全新的金字塔网络,更适合轻量化模型的FPN
- opencv 选择矩形框
- Expected more than 1 value per channel when training, got input size torch.Size
- Can't connect to HTTPS URL because the SSL module is not available