美文网首页
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 手动打包记

    为什么要打包 一般我们刚开始写Android的时候,我们都会想,我们直接运行过后,我们在项目的project目录的...

  • 纯命令行打APK实操全记录

    介绍 本文基于ant命令创建工程使用android sdk提供的工具进行手动打包 打包基本流程 手动命令打包实操 ...

  • android 手动打包apk

    创建工程 工程目录结构图: 使用aapt编译资源 为什么资源也需要编译?其实二进制的资源(比如图片)是不需要编译的...

  • Android_手动打包

    本文目标 项目包含bugly的热修复+360加固+VasDolly多渠道打包,打出来的包既加固了支持热修复还支持多...

  • iOS自动化打包上传到fir.im--python

    前言 原生移动开发中,不管是iOS还是Android经常需要进行打包、测试,随着项目的文件越来越多,手动打包需要花...

  • Android 打包记

    Android 打包记 安卓打包相比iOS算是简单的多的多了,没有那么 多证书限制 安卓打包只需要一个签名文件(k...

  • flutter 打包报错、巨坑、 Permission deni

    昨天用了 flutter build iOS 打包 未能成功 然后就打算用手动打包、然后手动打包就出现各种报错问题...

  • Android项目集成RN系列:修改端口号 / 离线包 / 消息

    【简述RN集成到Android原生项目】手动修改React Native端口号将RN项目打包成离线包RN与Andr...

  • iOS自动打包

    今天按照自动化打包教程做了一个测试,结果打包失败,提示信息如下: 就决定自动手动打包测试,手动打包能成功,接着就是...

  • Android Studio 配置多渠道一键打包,自动签名

    打包分为两种方式: 手动打包 自动打包 手动打包主要就是全程靠按钮去点击下一步下一步,如图所示 这样打包如果是单个...

网友评论

      本文标题:Android 手动打包记

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