`
JasonShieh
  • 浏览: 521429 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用命令行编译APK(中文版)

 
阅读更多
一:首先必须配置jvm的path,sdk的path(这样运行各种可执行文件时就不必显示的添加可执行文件的路径了,如javac,aapt等)。
vim ~/.bashrc
根据自己软件的安装情况在.bashrc文件的末行添加如下:
export JAVA_HOME=/usr/lib/jvm/default-java:/usr/lib/jvm/java-6-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:JAVA_HOME/lib.tools.jar
export JAVA_HOME CLASSPATH PATH
export PATH=${PATH}:/home/huangqin/android-sdks/platform-tools
export PATH=${PATH}:/home/huangqin/android-sdks/tools
export PATH=~/bin:$PATH

二:进入上层应用的根目录。如:
cd ~/android-sdks/samples/android-15/WiFiDirectDemo

三:使用aapt生成R.java类文件
aapt package -f -m -J gen/ -S res -I ../../../platforms/android-14/android.jar -M AndroidManifest.xml
其中:-f -m -J gen/代表按覆盖的形式在gen目录下生成带包路径的R.java,-S res指定资源文件 ,-I ../../../platforms/android-14/android.jar指定使用的android类,-M AndroidManifest.xml指定程序的配置文件。

四:2使用android SDK提供的aidl.exe把.aidl转成.java文件。
usage: aidl OPTIONS INPUT [OUTPUT]
       aidl --preprocess OUTPUT INPUT...


OPTIONS:
   -I<DIR>    search path for import statements.
   -d<FILE>   generate dependency file.
   -p<FILE>   file created by --preprocess to import.
   -o<FOLDER> base output folder for generated files.
   -b         fail when trying to compile a parcelable.

INPUT:
   An aidl interface file.

OUTPUT:
   The generated interface files.


五:编译.java类文件生成class文件。
javac -encoding GB18030 -target 1.6  -bootclasspath ../../../platforms/android-14/android.jar -d bin src/com/example/android/wifidirect/*.java gen/com/example/android/wifidirect/R.java
其中-target 1.6 为jdk的版本号

附:javac用法
用法:javac <选项> <源文件>
其中,可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件和注释处理程序的位置
  -cp <路径>                   指定查找用户类文件和注释处理程序的位置
  -sourcepath <路径>           指定查找输入源文件的位置
  -bootclasspath <路径>        覆盖引导类文件的位置
  -extdirs <目录>              覆盖安装的扩展目录的位置
  -endorseddirs <目录>         覆盖签名的标准路径的位置
  -proc:{none,only}          控制是否执行注释处理和/或编译。
  -processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认的搜索进程
  -processorpath <路径>        指定查找注释处理程序的位置
  -d <目录>                    指定存放生成的类文件的位置
  -s <目录>                    指定存放生成的源文件的位置
  -implicit:{none,class}     指定是否为隐式引用文件生成类文件
  -encoding <编码>             指定源文件使用的字符编码
  -source <版本>               提供与指定版本的源兼容性
  -target <版本>               生成特定 VM 版本的类文件
  -version                   版本信息
  -help                      输出标准选项的提要
  -Akey[=value]              传递给注释处理程序的选项
  -X                         输出非标准选项的提要
  -J<标志>                     直接将 <标志> 传递给运行时系统
  -Werror                    Terminate compilation if warnings occur


六:使用android SDK提供的dx.bat命令行脚本生成classes.dex文件。
dx --dex --output=bin/classes.dex bin/classes
其中classes.dex为生成的目标文件,bin/classes为class文件所在目录。

七:使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等)
aapt package -f -M AndroidManifest.xml -S res -A assets -I ../../../platforms/android-14/android.jar  -F bin/WifiDirectDemo
将AndroidManifest.xml,res和assets文件夹中的资源文件打包生成WifiDirectDemo

八:生成未签名的apk安装文件。
apkbuilder WifiDirectDemo.apk -v -u -z bin/WifiDirectDemo -f bin/classes.dex -rf src/
其中:WifiDirectDemo.apk为生成的apk ,-z bin/WifiDirectDemo为资源包,bin/classes.dex为类文件包

详细信息:
THIS TOOL IS DEPRECATED. See --help for more information.

Packaging WifiDirectDemo.apk
bin/WifiDirectDemo:
=> assets/sample_file.txt
=> res/drawable/details_view.xml
=> res/drawable/machine.png
=> res/drawable/section_header.xml
=> res/layout/device_detail.xml
=> res/layout/device_list.xml
=> res/layout/main.xml
=> res/layout/row_devices.xml
=> res/menu/action_items.xml
=> AndroidManifest.xml
=> resources.arsc
=> res/drawable-hdpi/ic_action_discover.png
=> res/drawable-hdpi/ic_action_on_off.png
=> res/drawable-hdpi/ic_launcher.png
=> res/drawable-hdpi/icon.png
=> res/drawable-ldpi/ic_action_discover.png
=> res/drawable-ldpi/ic_action_on_off.png
=> res/drawable-ldpi/ic_launcher.png
=> res/drawable-ldpi/icon.png
=> res/drawable-mdpi/ic_action_discover.png
=> res/drawable-mdpi/ic_action_on_off.png
=> res/drawable-mdpi/ic_launcher.png
=> res/drawable-mdpi/icon.png
=> res/drawable-xhdpi/ic_action_discover.png
=> res/drawable-xhdpi/ic_action_on_off.png
=> res/drawable-xhdpi/ic_launcher.png
=> res/layout-land/main.xml
=> res/layout-large/main.xml
bin/classes.dex => classes.dex

九:使用jdk的jarsigner对未签名的包进行apk签名。


十:编写共用的.sh文件。
分享到:
评论

相关推荐

    Android Apk命令行编译签名打包大全

    这里详细的介绍了如何使用命令编译apk 签名 打包,很实用,如果你是Android开发者一定要知道如何编译签名apk

    一键反编译apk工具

    android一键反编译apk工具 bat命令行脚本

    反编译apk文件工具及使用方法

    反编译Apk得到Java源代码 转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html 工具下载:需用到dex2jar和JD-GUI这2个工具 dex2jar下载地址:...

    apk反编译图形界面工具(远离命令行)

    apk反编译图形界面工具,无需命令行下操作

    反编译Apk(包括apktool、dex2jar和JD-GUI)下载

    一、反编译Apk得到Java源代码 首先要使用到下载的这两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工 具,可以直接查看Jar包的源代码。 具体步骤: 首先将apk文件,将...

    ApkTool 1.5.1 反编译apk工具

    可用于反编译apk文件以及可以重新编译打包。该版本为1.5.1。 用法:(先命令行cd到apktool.bat目录下) 1、反编译:apktool d xxx.apk xxx 2、重新编译:apktool b xxx 3、重新编译后的apk见于xxx文件夹下的dist目录

    反编译APK,dex2jar和JD-GUI

    一、反编译Apk得到Java源代码 首先要使用到下载的这两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工 具,可以直接查看Jar包的源代码。 具体步骤: 首先将apk文件,将...

    反编译apk文件(android)

    该工具可以将apk文件反编译成java源代码。 使用方法: 1.提取apk中的class.dex文件: 比如有apk文件:qq.apk,将其改名为qq.zip,然后解压,可以看到classes.dex。 2.解压"apk反编译工具.zip": 解压后,将classes....

    将apk文件反编译成java源码

    把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件 2.把classes.dex拷贝到dex2jar.bat所在目录。 ...

    反编译apk为java代码的工具

    反编译apk得到其源代码。方法如下 1.首先找到Android软件安装包中的classes.dex 把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个...

    mac或linux下反编译apk的工具脚本

    依赖dex2jar工具的反编译脚本文件,能够实现一步反编译的目的,非常方面,只要执行一个命令行就可生成目标jar。

    APK反编译图形化工具

    这是一款很方便的apk反编译工具,图形化的操作方式省去了命令行的敲击。

    安卓apk文件完美反编译

    一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下, 打开命令行界面(运行-CMD...

    Android反编译工具 APK反编译工具

    首先将apk文件后缀改为zip并解压 得到其中的classes dex 它就是java文件编译再通过dx工具打包而成的 将classes dex复制到dex2jar bat所在目录 dex2jar 0 0 9 9文件夹 在命令行下定位到dex2jar bat所在目录 运行 dex...

    Android APK反编译工具包(全)

    上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby 首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk

    apk 文件反编译工具

    超好用的傻瓜式apk反编译工具,直接在命令行输入 命令:parseAPK.bat file1.apk 如:命令:parseAPK.bat D:\folder\file.apk D:\folder\file2.apk 即可

    apk反编译,打包及签名工具(附详细使用说明)

    1) APKtool软件包 及...这个命令行是使用test证书的例子:java -jar signapk.jar testkey.x509.pem testkey.pk8 YOURAPK.apk YOURAPK_signed.apk YOURAPK_signed.apk就是签完名的apk,去测试一下您重新打包的apk吧。

    apk自动添加渠道号(无需反编译及重新打包APK)

    1.该脚本自动在apk的assets文件夹下添加subChannelID.bin文件,并在文件中写入命令行传入的渠道号,添加过程中不需要反编译apk. 2.该脚本在添加完渠道号后会自动使用命令行传入的签名相关参数进行签名 3.该脚本在...

    安卓手机APK反编译工具

    一、反编译Apk得到Java源代码 首先要使用到下载的这两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工 具,可以直接查看Jar包的源代码。 具体步骤: 首先将apk文件,将...

Global site tag (gtag.js) - Google Analytics