android项目编译命令行,命令行编译Android项目
1. 生成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. Java代码生成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. class文件生成dex文件
dx --dex --output=D:\ProjectDemo\bin\classes.dex D:\ProjectDemo\bin
--output=
4. 打包资源
> 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. 生成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. 签名apk
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是需要签名的文件)
android项目编译命令行,命令行编译Android项目相关推荐
- Linux下编译build的命令,Linux命令行下编译Android NDK的示例代码
这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用.所以花了点时间研究Android NDK ...
- 命令行开发、编译、打包Android应用程序
Android SDK提供了一系列命令行工具,用来进行Android应用的开发.调试.打包等工作!Eclipse能够进行Android应用开发的相关工作,也是调用了这些工具而已. 只有掌握了命令下的工 ...
- 一步步通过命令行cl.exe编译Windows程序
Windows系统下有强大的IDE工具VS,VC6.0等,隐藏了很多编译和链接的细节. 事实上,VS是通过调用cl.exe进行源代码编译.接着调用link.exe进行目标文件的链接等操作 ...
- 28和lba48命令格式区别_编译Sass(命令行)
本文作者:开课吧无忧 图文编辑:开三金 sass编译有很多种方式,如命令行编译模式.编辑器自动编译.编译软件koala.sass-loader等. 今天我们就先来看第一种:命令行编译 刚才我在test ...
- java文件编译为class文件需要键入什么命令_cmd命令行 编译Java 文件
[问题引入] 很多时候,需要用到命令行来进行Java文件的编译.在用习惯了IDE 可能会不清楚如何在cmd命令行窗口进行编译,简单的都还好,带有包路径的可能会让很多人觉得有点小头疼.最近试了一下,发现 ...
- ARM学习(15)Makefile编译以及CortexM4命令行STLINK 烧录
笔者来聊聊Makefile编译以及CortexM4命令行STLINK 烧录 Makefile编译以及CortexM4命令行STLINK 烧录 1.简单Makefile编译STM32工程 1.1 mak ...
- java 编译文件 命令,CMD命令行编译运行单个java文件
java文件中不含包名 这种情况比较简单 public class NoPackage{ public static void main(String[] args){ System.out.prin ...
- 解决命令行下java编译javac不成功java和java -version可以成功的三种解决方案
最近在cmd命令行下javac编译java文件不成功,但是输入java和java -version没问题 在CSDN看了一下午各路大神的回答,自己总结一下三个解决方法: 1.如果cmd下输入java或 ...
- keil使用命令行编译_使用命令行编译C51源码并生成HEX文件的示例
参考Keil\C51\HLP\C51.pdf以及A51.pdf文档,示例及说明如下: set PATH=%PATH%;G:\develop\keil\C51\BIN;G:\develop\keil\C ...
- Android 常用命令行和 源码编译
1.取出 ANR log,分析问题 C:\Users\Administrator>adb shell root@android:/ # cd data/ar cd data/ar /system ...
最新文章
- 年轻人的第一块金牌:我是如何成为 Kaggle 全网第一的
- gnupg环境搭建时遇到的问题
- hihocoder #1388 : Periodic Signal NTTFFT
- JDK12的五大重要新特性
- alexnet vgg_从零开始:建立著名的分类网2(AlexNet / VGG)
- The return types for the following stored procedures could not be detected
- 使用php进行后台开发,PHP后台开发用到的基础方法整理【原创】
- 从头到尾谈一下HTTPS
- RadioButton 与 XML 之间的协调使用
- EF 4.3 Code-Based Migrations
- 见证“开放式多路供水”的技术难度应大于人类上天!
- 时间序列数据挖掘综述
- android系统修改开机动画效果,Android手机开机动画的修改
- php 微信下载临时素材,php 微信开发之新增上传/获取下载临时素材
- linux fstab错误无法启动,Linux 系统 fstab错误导致系统无法启动的修复
- 选项不属于HTML语言特点,JavaScript选择题
- U系银河麒麟配置本地镜像源
- Unity游戏开发客户端面经——lua(初级)
- 第一章第十三题(代数:求解2 × 2线性方程组)(Algebra: solve 2 × 2 linear equations)
- java如何将二进制转换为十进制 1
热门文章
- fastlane use_legacy_build_api true
- 【Lolttery】项目开发日志 (三)维护好一个项目好难
- [20170617]vim中调用sqlplus.txt
- Tiny框架2.0版火热推出
- deep learning入门学习
- linux下编译安装MySQL5.6新版本
- 演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤
- Server 2012 Hyper-v新功能之二:自动化支持技术
- Altiris™ IT Management Suite 7 Release Notes
- java 添加用户 数据库,跟屌丝学DB2 第二课 建立数据库以及添加用户