• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android自动化构建之Ant多渠道打包实践分析(上)

Android自动化构建之Ant多渠道打包实践分析(上)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android ant,android ant下载,android ant打包,android ant配置,android studio ant等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android自动化构建之Ant多渠道打包实践分析(上)


前言

Ant是历史比较悠久的一个自动化构建工具,Android开发者可以通过它来实现自动化构建,也可以实现多渠道打包,关于apk打包的方式一般有Ant、Python、Gradle三种,这三种打包方式都各自有优点和缺点,本篇博文先给大家介绍如何使用Ant来实现自动构建和多渠道发布。

开发环境

Window7 Ant jdk android sdk

mac系统下所需要的运行环境也是类似的,我们都需要配置Ant、jdk、sdk的环境变量,我们可以看一下window下是环境变量配了些什么:
ANT_HOME : D:\android\apache-ant-1.9.4
JAVA_HOME : C:\Program Files\Java\jdk1.6.0_45
ANDROID_SDK_HOME : D:\android\adt-bundle-windows-x86_64-20140321\sdk
PATH: %JAVA_HOME%/bin;%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools;%ANT_HOME%\bin;
CLASSPATH : .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar

以上环境变量配好之后,你才可以进入下一步,不会配?回家吧,开发不适合你。

先说APK构建过程

下面来简单描述下apk构建的过程:
1. 使用aapt生成R.java类文件
2. 使用android SDK提供的aidl.exe把.aidl转成Java文件
3. 使用javac命令编译.java类文件生成class文件
4. 使用android SDK提供的dx.bat命令行脚本生成classes.dex文件
5. 使用android SDK提供的aapt.exe生成资源包文件
6. 使用apkBuilder.bat生成未签名的apk安装文件
7. 使用jdk的jarsigner对未签名的包进行apk签名
8. 使用Zipalign工具对apk进行优化

我们从上面的描述可以知道apk具体的步骤和使用到的工具,对应的工具在sdk中都可以找到,自己去翻翻吧,但你会发现新的sdk版本,aapt被放到了build-tools目录下,apkBuilder.bat文件在tools目录找不到了,你可以去网上去下一个,然后放到tools目录下。为了让大家更清楚apk构建的过程,放上官方的一张图:

apk构建过程

有了这张图,相信大家已经清楚了apk到底是如何生成的吧,不多说了。

构建命令详解

aapt命令生成R.java文件

示例命令:

aapt package -m -J -S -I -M

命令解释:

-f 如果编译出来的文件已经存在,强制覆盖
-m 使生成的包的目录存放在-J参数指定的目录
-J 指定生成的R.java 的输出目录
-S res文件夹路径
-A assert文件夹路径
-I 某个版本平台的android.jar的路径
-F 具体指定APK文件的输出

aidl命令生成.aidl文件

示例命令:

aidl -p<framework.aidl路径> -I -o<目标文件目录> .aidl文件 </framework.aidl路径>

注意:命令和路径是没有空格的。

<framework.aidl路径>javac命令生成.class文件

示例命令:

javac -d destdir srcFile

参数解释:
-d 指定存放类的文件夹
-bootclasspath 覆盖引导类文件的位置
-encoding 指定源文件使用的编码
-sourcepath 指定查找输入源文件位置

dx命令生成classes.dex文件
示例命令:
dx --dex --output classes.dex  bin/classes/  libs/

命令解释:将bin/classes下的class文件和libs下的jar文件编译成classes.dex文件

aapt生成资源包文件resources.ap_

命令示例:

aapt package -m -J  -S  -I  -A  -M -F 
apkbuilder.bat已经过时了,使用以下方法

示例命令:

java -cp  com.android.sdklib.build.ApkBuilderMain <未签名.apk>  -v -u -z bin\resources.ap_ -f bin\classes.dex -rf src
通过jarsigner来生成
示例命令:
jarsigner -verbose -keystore  -signedjar -<输出签名apk路径> <未签名apk路径> 
最后一步使用zipalign工具进行apk对齐优化

示例命令:

zipalign [-f] [-v]  infile.apk outfile.apk

上面的8个步骤就是实现apk构建的过程,都是通过命令来一步一步实现,要注意每一步生成的东西。

小结

本篇博文主要给大家介绍了Android中apk构建的过程,也详细的讲解了每一步具体的命令操作,由于不想一篇把所有东西堆在一起,我将会在下一篇来具体使用Ant脚本实现自动化构建和多渠道打包,大家可以继续关注。


 

 </div>  </div>
</framework.aidl路径>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android自动化构建之Ant多渠道打包实践分析(上)
  • Android自动化构建之Ant多渠道打包实践分析(下)

相关文章

  • 2017-05-26接口回调封装,回调封装
  • 2017-05-26Android 蓝牙操作详解,android蓝牙详解
  • 2017-05-26ELK部署参考文档
  • 2017-05-26android 公司app升级UI总结分析
  • 2017-05-26android:listview实现qq,微信好友列表(头像,昵称,个性签名)
  • 2017-05-26Android之SharedPreferences数据存储,sharedpreferences
  • 2017-05-26ViewHolder模式超简洁写法,viewholder模式写法
  • 2017-05-26张高兴的 Xamarin.Android 学习笔记:(四)常用控件,android常用控件
  • 2017-05-26Android如何使用Https
  • 2017-05-26Android ViewTreeObserver(转载),viewtreeobserver

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 自定义控件详解(二):Path类 相关用法,详解path
    • [Android]Android布局优化之&lt;include /&gt;,androidinclude
    • 2.3.2 EditText(输入框)详解
    • ViewPager结合Fragment进行无限滑动,viewpagerfragment
    • Android仿联系人列表分组悬浮列表实现,自定义PinnedHeaderListView实现
    • 【React Native开发】React Native控件之ProgressBarAndroid进度条讲解(12)
    • nginx设置泛域名解析的https证书过程
    • Android 知识Tips,android知识tips
    • Android JSBridge的原理与实现
    • Android Fragment生命周期,androidfragment

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有