Android 手动打包记

2019-04-01  本文已影响0人  周蛋蛋

为什么要打包

一般我们刚开始写Android的时候,我们都会想,我们直接运行过后,我们在项目的project目录的build/outputs/apk里能找见我们所运行后生成的apk,我们也是可以安装在手机上

image.png

如上所示,我们生成的apk就在这里,这个是可安装在app上面的,但是我们为什么不这样做?

通过包名+签名来确定一个应用的唯一性,那个 debug.apk 只是系统用来给我们调试用的,如果上传到市场,怎么来保证他的安全性。
OK,我们已经解决了第一步—怎么打包。上传上去后,市场反馈发现我们的App写得太棒了,这时候老大让赶快多上些平台,主流的平台、非主流的平台都要放上去。
那么问题来了,为了方便统计各个平台的安装情况,配合运营推广,需要统计各个平台的安装情况。

打包过程

签名信息
image

在对应的文件中可以看到多了以下代码:

Incremental Dex:增长DEX

Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件(二进制格式)组合成一个应用程序包(APK)。应用程序包可以被发布到手机上运行

如果将它设置为ture,可以看到对应的文件中增加了如下代码

  dexOptions {
  incremental true`
  }

Source Compatibility:资源版本

Target Compatibility:目标版本

两个都选了1.7,可以看到增加了如下代码:

image image image.png

Signing签名

image.png

它们之间的关系是:
一个keystroe就是一个签名文件.打开它需要一个密码,就是keystore密码.Keystrore中可以存放多个key Alias,每一个key alias有一个单独的密码.

Flavors(多样性,多渠道)

我们的应用经常需要多渠道打包.这个可以翻译为多渠道打包.

image.png

混淆文件,去除无用文件,并优化代码

签名的文件信息在前一个选项卡Signing中设置.在这里选择

设置了以后可以看到这个渠道对应的信息

image image.png

RenderScript相关介绍http://www.cnblogs.com/TerryBlog/archive/2012/03/02/2377251.html

关于本地化整理介绍http://blog.csdn.net/kieven2008/article/details/6873610

关于ZipAlign介绍:http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.html

tesst_001设置好以后的对应属性:

image

看完上面的的相信大家对Gradle,相应的配置,以及要怎么配置,在哪里配置.都有了一个大概的了解.

注意:直接修改gradle会直接修改对应的设置.

更多Gralde信息.比如说Flavors与Build Types之间有什么关系,对项目的构建会产生什么影响.

如何使用命令行配置等等问题

可以参考以下链接(这些链接也是我写这博文的参考基础.):

①Gradle翻译:在这里可以看到每个选项的作用是什么,翻译的非常好

http://blog.csdn.net/qinxiandiqi/article/category/2394347

②Gradle基础,学习之路大神最新教程

http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/

③Gralde官网

http://www.gradle.org/

对应的部分使用翻译

http://somefuture.iteye.com/category/300603

④Gralde翻译以及使用

http://blog.csdn.net/maosidiaoxian?viewmode=contents

上一篇下一篇

猜你喜欢

热点阅读