`
JasonShieh
  • 浏览: 528585 次
  • 性别: 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文件。
分享到:
评论

相关推荐

    命令行反编译APK包classes.dex

    命令行反编译APK包classes.dex

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

    在Android开发过程中,掌握命令行编译、签名和打包APK的方法是十分必要的。下面将详细介绍这个过程: 1. **生成R.java文件** R.java文件是Android编译系统自动生成的,它包含了应用程序资源的ID。使用aapt工具可以...

    反编译Apk得到Java源代码

    反编译Apk得到Java源代码是Android应用开发中的一种重要技术,通过使用dex2jar和JD-GUI这两个工具,可以将apk文件反编译成Java源代码。下面是反编译Apk得到Java源代码的详细步骤: 一、使用dex2jar和JD-GUI反编译...

    反编译apk tool

    在Android应用开发领域,反编译技术是一种常用的方法,用于理解、分析或修改APK文件中的代码和资源。本文将详细介绍使用"apktool"、"dex2jar"和"jd-gui.exe"这三个工具进行反编译的过程。 首先,我们要了解的是APK...

    一键反编译apk工具

    "一键反编译apk工具"就是这样一种实用工具,它简化了通常繁琐的反编译过程,通过bat命令行脚本实现自动化操作。下面将详细介绍这个工具及其相关知识点。 1. APK 文件结构:APK是Android应用的打包格式,包含.dex...

    一键反编译apk文件

    标题中的“一键反编译apk文件”指的是使用特定的工具或程序来快速、简便地对Android应用程序(APK)进行反编译。APK文件是Android系统中用于分发和安装应用的打包格式,通常包含Java字节码、资源文件(如XML布局、...

    Android 反编译apk工具包

    本文将深入探讨“Android反编译apk工具包”,并介绍如何使用其中的`decodeapk`工具来解码APK文件,揭示其源代码和资源。 首先,我们需要明白APK是Android应用的安装包,它包含了Java字节码、资源文件(如布局、图片...

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

    使用这两个工具,你可以实现以下步骤来反编译APK: 1. **解压APK**:使用ApkTool_GUI打开APK文件,选择解包选项,工具会自动处理资源文件和.dex文件。 2. **查看源代码**:解包完成后,可以浏览解压出来的目录结构...

    android源码上编译APK

    在Android源码上编译APK是一个复杂但必要的过程,特别是当你需要开发具有系统权限的应用,例如修改系统时间或实现关机功能。以下是对整个流程的详细解释: 首先,你需要编译Android源码。这通常涉及到获取源码、...

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

    "mac或linux下反编译apk的工具脚本"就是这样一个实用的工具,它整合了dex2jar工具,简化了反编译过程。 首先,我们要了解dex2jar。Dex2jar是一个Java工具,它可以将Dalvik Executable (.dex)文件转换为Java字节码的...

    反编译APK文件

    本文将详细讲解如何使用“dex2jar”和“JD-GUI”这两个工具来反编译APK文件。 1. **什么是反编译**: 反编译是将已编译的二进制代码转换回接近原始源代码的过程。在Android世界里,APK中的代码通常被编译为Dalvik ...

    Android反编译apk工具

    它采用先进的静态分析技术,提供了一个图形用户界面 (GUI) 和命令行接口 (CLI),支持批量处理,可以快速高效地反编译 APK 文件。jadx 的主要特点包括: 1. **准确的反编译结果**:jadx 努力保持原始代码的结构和...

    反编译APK问题解释

    ### 反编译APK问题解释 在移动应用开发领域,特别是针对Android平台的应用开发过程中,反编译APK是一项非常重要的技能。本篇文章将详细解释反编译APK的核心概念、过程以及所需工具,帮助读者更好地理解并掌握这项...

    apk反编译工具

    6. **风险与道德**:尽管反编译APK在某些场景下是有益的,但未经许可对他人应用进行反编译可能侵犯版权,因此应遵循合法和道德的使用原则。 7. **工具介绍**: - **Apktool**:一个流行的APK反编译和打包工具,...

    反编译apk工具

    本篇文章将详细探讨如何使用"反编译apk工具",包括jd-gui.exe和dex2jar,这两个关键工具在APK分析中的作用。 首先,让我们了解一下什么是"反编译"。反编译是将已编译的二进制代码(如Java字节码或机器码)转换回源...

    反编译APK.rar

    本文将详细介绍如何使用"反编译APK.rar"这个压缩包中的工具进行APK的反编译,以及相关知识点。 标题"反编译APK.rar"暗示了这是一个用于反编译Android APK文件的工具包。APK反编译通常是为了查看Java源代码、资源...

    安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具

    本文将详细介绍如何使用“安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具”这一工具集来实现这些目标。 首先,让我们理解一下核心概念: 1. **APK**: Android应用程序的...

Global site tag (gtag.js) - Google Analytics