美文网首页
Android 手动打包记

Android 手动打包记

作者: 周蛋蛋 | 来源:发表于2019-04-01 11:13 被阅读0次

    为什么要打包

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

    image.png

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

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

    打包过程

    • 配置详情 ,我们先来介绍一下里面的具体意思
    签名信息
    • Library Reposiory当前的Module的仓库源.
      这里可以定义一个地址,一个本地路径,或者是jcenter()和mavenCentral().
      填写任何一个仓库,AS会自动下载对应的仓库,如果你随便填写一个,会提示你无法连接到该仓库.我这这里填写了mavenCentral()

    • Ignore Assets Pattern:打包时候要忽略的文件
      这将影响所有使用aapt的task.
      这里我填写一个siyehua.

    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
    • Name:Flaveor的名字

    • Min Sdk Version:向下兼容的SDK版本

    • Application Id:包名

    • Proguard File:混淆文件

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

    • Signig Config:签名文件名.

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

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

    image image.png
    • Name:Build Type名称

    • Debugable:是否可以调试

    • Jin Debuggable:是否可以调试JNI

    • Signing Config:签名信息

    • Renderscript Debuggale:是否使用RenderScript

    • Renderscript Optim Level:Rendescript版本.

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

    • Minify Enabled:是否去除无用的资源

    • Pseudo Locales Enaled:是否支持本地化整理

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

    • Proguard File:混淆,去重文件路径

    • Application Id Suffix:App id后缀

    • Version Name Suffix:版本名称后缀

    • Zip Align Enabled:是否支持Zip Align

    关于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

    相关文章

      网友评论

          本文标题:Android 手动打包记

          本文链接:https://www.haomeiwen.com/subject/btembqtx.html