`
MyEyeOfJava
  • 浏览: 1152252 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71173
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

转[Android]APK打包过程详解(二)

阅读更多
此博文是引用自:http://jojol-zhou.iteye.com/blog/729254
jojol-zhou给予大家实际使用命令的具体例子,对于想深入研究APK是怎么打包出来的同学很有帮助,特转载在此。

【详细步骤】:

1使用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:



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.



3第三步 编译.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



4使用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文件所在目录

5使用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

6第六步 生成未签名的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为类文件包


7使用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://asantoso.wordpress.com/2009/09/15/how-to-build-android-application-package-apk-from-the-command-line-using-the-sdk-tools-continuously-integrated-using-cruisecontrol/
分享到:
评论

相关推荐

    Android APK反编译详解

    ### Android APK反编译详解 在Android开发领域中,反编译APK文件是一种常见的学习方式,可以帮助开发者深入了解优秀应用程序的设计和技术实现。本文将详细介绍三种常用的Android APK反编译技术,帮助开发者更好地...

    android应用APK打包签名方法文档

    ### Android应用APK打包签名方法详解 #### 一、引言 在Android开发过程中,APK的打包与签名是一项至关重要的环节。无论是开发者在本地测试应用,还是将应用提交到Google Play商店,都需要确保APK文件正确地进行了...

    android studio 打包自动生成版本号与日期,apk输入路径详解

    二. 1. build.gradle 文件添加内容如下。gradle是【com.android.tools.build:gradle:3.0.0 以下版本】 android{ defaultConfig {...} 自动追加版本号和版本名称 android.applicationVariants.all { variant-&gt;...

    Android Studio打包APK软件步骤

    ### Android Studio 打包 APK 软件步骤详解 #### 前言 在移动应用开发领域,Android Studio 是一款非常流行的集成开发环境(IDE),主要用于构建 Android 应用程序。其中,打包 APK(Android Package Kit)是开发...

    Android APK反编译详解(附图

    Android APK 反编译是一个技术过程,通过这个过程可以将已编译的APK应用程序转换回源代码形式,便于分析、学习或者进行软件汉化。本文主要介绍了三种反编译方法,分别是使用命令行工具dex2jar和JD-GUI、使用apktool...

    Android反编译软件 安卓反编译 Android APK反编译详解

    在Android开发领域,有时我们需要对APK文件进行反编译以了解其内部结构、源代码逻辑或进行二次开发。本文将深入探讨Android反编译的相关知识,包括为什么要进行反编译,常用工具介绍,以及反编译过程的详细步骤。 ...

    Android APK反编译详解(附图)

    ### Android APK反编译详解 #### 一、反编译Apk得到Java源代码 **1.1 工具准备** 对于想要深入了解Android应用程序内部结构的学习者来说,掌握如何反编译APK文件以获取其Java源代码是一项非常有用的技能。这一...

    Android程序打包为APK的方法详解

    "Android程序打包为APK的方法详解" Android程序打包为APK是Android应用程序开发中的一个关键步骤,它将Android程序转换为可以在Android设备上安装和运行的安装包文件(APK)。下面将详细介绍Android程序打包为APK的...

    android apk打包

    ### Android APK 打包与签名详解 #### 一、引言 随着移动互联网的发展,Android 成为了最受欢迎的移动操作系统之一。对于开发者来说,了解如何正确地进行 APK 打包和签名至关重要,因为这是确保应用程序安全性和...

    Android studio打包方法.docx

    Android Studio 打包方法详解 Android Studio 是一款功能强大且流行的集成开发环境(IDE),广泛应用于 Android 应用程序的开发和调试。然而,在将应用程序发布到 Google Play 商店或其他应用商店之前,需要对其...

    Android Studio打包.so库到apk中实例详解

    本文将详细介绍如何在Android Studio中将.so库打包进apk。 首先,你需要在Android Studio项目的`app`目录下创建一个名为`jni`的目录。在这个目录中,你会放置`Android.mk`和`Application.mk`文件,以及你的C/C++和...

    Android APK文件结构 完整打包编译的流程 APK安装过程 详解

    Android apk文件结构 打包编译的流程Android官网 配置构建 流程Configure your buildThe build processAPK文件结构assetsreslibMETA-INFAndroidManifest.xmlclasses.dexresources.arscAndroid完整打包流程详细介绍1....

    Android Studio将程序打包成APK的步骤详解

    总结来说,Android Studio的APK打包流程主要包括:选择生成签名APK,创建或选择密钥库,设置签名选项,然后等待打包完成。整个过程虽然看似复杂,但按照步骤操作并不困难。记得在打包过程中保持警惕,确保所有的安全...

Global site tag (gtag.js) - Google Analytics