Android 命令行手动编译打包过程图
【详细步骤】:

Step1:使用aapt生成R.java类文件。
例:
F:/explorer/android-sdk-windows2.2/tools>f:/explorer/android-sdk-windows2.2/platforms/android-3/tools/aapt.exe package -f -m -J F:/explorer/AndroidByread/gen
-S res -I f:/explorer/android-sdk-windows2.2/platforms/android-3/android.jar -M AndroidManifest.xml
其中 -f -m -J F:/explorer/AndroidByread/gen 代表按覆盖的形式在gen目录下生成带包路径的R.java,-S res指定资源文件 ,-I f:/explorer/android-sdk-windows2.2/platforms/android-3/android.jar 指定使用的android类,-M AndroidManifest.xml指定程序的配置文件
aapt Usage:

Step2:使用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.
Step3:编译.java类文件生成class文件。
例:F:/explorer/AndroidByread>javac -encoding GB18030 -target 1.5 -bootclasspath F:/explorer/android-sdk-windows2.2/platforms/android-3/android.jar -d bin src/com/byread/reader/*.java gen/com/byread/reader/R.java

Step4:使用android SDK提供的dx.bat命令行脚本生成classes.dex文件。

例:
F:/explorer/AndroidByread>F:/explorer/android-sdk-windows2.2/platforms/android-3/tools/dx.bat --dex --output=F:/explorer/AndroidByread/bin/classes.dex f:/explorer/AndroidByread/bin/classes
其中classes.dex为生成的目标文件,f:/explorer/AndroidByread/bin/classes为class文件所在目录
Step5:使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等)。
F:/explorer/AndroidByread>F:/explorer/android-sdk-windows2.2/platforms/android-3/tools/aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I F:/explorer/android-sdk-windows2.2/platforms/android-3/android.jar -F bin/byreadreader
将AndroidManifest.xml,res和assets文件夹中的资源文件打包生成byreadreader,用法参见1
Step6:生成未签名的apk安装文件:
apkbuilder ${output.apk.file} -u -z ${packagedresource.file} -f ${dex.file} -rf ${source.dir} -rj ${libraries.dir}

例:
F:/explorer/AndroidByread>f:/explorer/android-sdk-windows2.2/tools/apkbuilder.bat f:/explorer/byreadreader.apk –v -u -z f:/explorer/AndroidByread/bin/byreadreader -f f:/explorer/AndroidByread/bin/class.dex -rf F:/explorer/AndroidByread/src
其中f:/explorer/byreadreader.apk为生成的apk ,-z f:/explorer/AndroidByread/bin/byreadreader为资源包,f:/explorer/AndroidByread/bin/class.dex为类文件包
Step7:使用jdk的jarsigner对未签名的包进行apk签名:
use jarsigner
jarsigner -keystore ${keystore} -storepass ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias}
例如:
F:/explorer/android-sdk-windows2.2/tools>jarsigner –keystore f:/explorer/eclipse3.5/bbyread.keystore -storepass byread002 -keypass byread002 -signedjar f:/explorer/byread.apk f:/explorer/byreadreader.apk byread
其中–keystore f:/explorer/eclipse3.5/bbyread.keystore 为密钥文件 -storepass byread002为密钥文件密码 byread 为密钥别名 -keypass byread002为密钥别名密码,-signedjar f:/explorer/byread.apk为签名后生成的apk文件 f:/explorer/byreadreader.apk为未签名的文件。
转自:http://blog.csdn.net/zuolongsnail/article/details/6444304
转自:http://jojol-zhou.iteye.com/blog/729254
分享到:
相关推荐
### Android命令行手动编译打包详解 #### 一、引言 随着移动互联网技术的快速发展,Android已经成为全球最大的移动操作系统之一。对于开发者来说,掌握如何使用命令行进行Android项目的编译与打包是非常重要的技能...
然而,由于自动反编译的过程可能会出现一些语法错误,可能需要手动修正后才能正常运行。 在反编译过程中,需要注意以下几点: 1. 法律风险:未经授权的反编译可能侵犯他人的知识产权,所以在进行反编译前,确保你有...
这篇我们将深入探讨Android Studio必备的编译打包工具——Gradle及其相关知识。 **Gradle** Gradle是一种基于Groovy语言的开源构建自动化系统,其设计目标是兼顾灵活性和性能。在Android Studio中,Gradle通过灵活...
4. **打包和编译**:使用JFXMobile Plugin的命令行工具(如`gradlew`)进行打包。这会生成一个适用于Android的特定版本的JavaFX应用,同时也会处理相关的资源和依赖。 5. **签名和发布**:在生成的APK文件准备好后...
在Android中,Ant简化了编译和APK打包的过程。下载Apache Ant后,将其解压缩并配置环境变量,新建`ANT_HOME`指向Ant的安装路径,并在`PATH`变量中添加`%ANT_HOME%\bin`。 通过命令行创建Android项目,首先需要切换...
这两个工具在Android应用的反编译和签名过程中扮演着关键角色。 ApkTool是一款流行的开源工具,专门用于反编译Android应用程序(APK)文件。它允许开发者解压APK,查看并编辑其资源文件,如XML布局、图片、字符串...
apktool是一个强大的Android反编译工具,它不仅可以解包APK文件,还能将其重新打包并签名,使其可以重新安装。Apktool能够解析APK的资源文件,包括XML布局、图片、字符串资源等,并将它们以原始格式展示,方便分析和...
在Android开发过程中,有时我们需要对应用进行批量打包,特别是在测试、发布或者构建多个版本时,手动逐一打包会非常耗时且容易出错。此时,利用Android Shell命令进行批量打包就显得尤为重要。Android Shell批量...
【标题】"界面式反编译打包工具apk"是一个专为Android应用开发者设计的图形化工具,它允许用户对APK文件进行反编译、修改和重新打包。这个工具简化了对APK内部结构的探索和调整过程,使得开发者或者逆向工程师能够...
在Android应用开发中,多渠道打包是一个常见的需求,特别是在商业化分发和推广过程中。它允许开发者为不同的分发渠道创建定制的应用程序包(APK),每个渠道包含特定的渠道ID或者参数,以便追踪应用程序的来源和下载...
APKTool是一个强大的开源工具,专为Android应用的反编译和再打包而设计。它允许开发者提取APK中的资源文件,如图片、布局XML、字符串表等,并可以重新打包和签名,以生成一个可安装的新APK。这个过程对于调试、学习...
在使用“android-ext4打包工具”时,你需要准备一个包含所有所需系统文件的目录,这些文件通常是从AOSP(Android Open Source Project)源码编译得到,或者从已有的系统映像中提取。然后,通过调用脚本或者手动执行...
Python脚本的核心是调用Android SDK中的`build-tools`目录下的`aapt`(Android Asset Packaging Tool)和`apktool`等工具,以及NDK中的`ndk-build`或`cmake`来完成打包过程。你需要了解这些工具的用法,例如`aapt`...
本文将深入探讨Android APK反编译的详细步骤和工具,帮助开发者或研究人员理解这一过程。 首先,我们需要了解APK文件的结构。APK是Android应用的打包格式,包含了DEX(Dalvik字节码)文件、资源文件、Manifest.xml...
该工具的核心功能是提供了一键式的反编译体验,意味着用户无需进行复杂的命令行操作或手动安装多个工具,即可完成整个过程。这大大降低了入门门槛,使得无论是初级开发者还是高级技术人员都能方便地对APK进行解包和...
Antidroid.exe是本套工具的核心,它提供了一整套图形用户界面(GUI),使得Android应用的反编译、修改和重新打包过程变得简单。用户无需手动执行复杂的命令行操作,只需要按照界面提示一步步操作,就能完成整个流程...
总的来说,掌握Android源码打包不仅需要了解Git、Repo、Python脚本编写,还要熟悉Android的构建系统和编译工具。这是一项涉及多方面技能的任务,对于深入理解Android系统和提升开发能力具有重要意义。通过不断学习和...
使用Smali2Java通常涉及编写脚本或手动处理转换过程。 这些工具的结合使用,使开发者或安全研究人员能够对Android应用进行深度分析,了解其内部工作原理,修复漏洞,或者在遵守版权法律的前提下进行二次开发。然而...
【apkKiller_反编译_一键打包签名工具】是一个专为Windows用户设计的免费Android应用反编译和打包工具。这款工具集成了多种实用功能,包括解包、搜索、重新打包、签名以及批量打包,使得Android应用的逆向工程过程变...
- 使用Ant构建Android应用自动化打包可以显著提高开发效率,减少手动操作的错误。 - 熟悉Ant的配置和任务定义是每个Android开发者必备的技能之一。 - 结合"Command4Ant"这样的工具,可以进一步定制化和优化自动化...