安卓APP完整开发流程(11/12)多渠道打包

牛客高级系列专栏:

安卓(安卓系统开发也要掌握)


嵌入式


本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验,网上安卓资料千千万,笔者将继续维护专栏,一杯奶茶价格不止提供答案解析,承诺提供专栏内容免费技术答疑,直接咨询即可。助您快速掌握安卓App完整开发流程!

正文开始⬇


1、多渠道打包

1.1 什么是多渠道打包

  • 渠道:我们编译生成的APK需要放到各大应用市场后,用户才能够下载使用的。作为国外,只有google play这么一个应用商店。但是在国内可能有几十甚至是上百个应用市场,这些应用商城就可以称之为渠道,也就是我们发布的渠道。
  • 多渠道打包:就是字面上的意思,面向着多个渠道分别打包了一次APK。

1.2 多渠道打包的作用

我们为什么需要分别打包呢?一般是可以从运营的层面去考虑:

  • 定制化的需求:有时候可能需要根据不同的渠道去生成不同的应用名称、包名、图标,以确保不同的渠道之间互不干扰;
  • 运营统计的需求:运营人员需要知道不同渠道所推广的APK的用户量、下载量及应用分发效果等数据,从而了解哪个渠道的推广效果较好,投放的效果不行的可能需要加大投放等。

因此,使用多渠道打包可以让开发者在应用程序发行时轻松地生成多个 APK 文件,减少了多次手动签名和部署的繁琐工作,大大提高了应用程序的发布效率。

2、多渠道打包需要做什么

一般需要以下三件事情:

  • 多渠道包的生成
  • APK重命名
  • 运行时读取渠道信息

2.1 多渠道包的生成

我使用的是基于腾讯统计SDK里面的方案。首先,在AndroidManifest.xml的application标签里添加一个meta-data标签定义MTA_CHANNEL占位符,腾讯分析SDK会读取里面的value值传到后台,便于我们日后分析。

 <application>
        <meta-data
            android:name="MTA_CHANNEL"
            android:value="${MTA_CHANNEL_VALUE}"/>
    </application>

接着利用上一节所讲的构建变体的知识,在app的build.gradle里添加:

andro

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

安卓APP完整开发流程 文章被收录于专栏

要成为一名高级安卓APP开发工程师,只有对安卓APP完整开发流程有全面性的了解,才能在技术、产品、市场这三大模块,帮助团队找到更优的解决方案。 本专栏详细介绍安卓APP完整开发流程:配置环境--》创建工程--》工程配置--》编写代码--》引用第三方库--》多项目构建--》多Dex支持--》代码混淆--》签名/打包--》构建定制--》多渠道打包--》线上运维。 安卓系统工程师也可以参考~

全部评论

相关推荐

1、拷打项目。具体介绍一下无障碍权限。项目中gemini是干什么的?如何实现版本更新提醒的?如果提示更新时发生异常,比如网络状况不好,怎么处理?网络请求怎么实现的,用了第三方库吗?(OKHTTP3)了解过这个库的原理吗?(没有)那你具体用了库中的哪些方法?2、安卓中view绘制的过程经历了哪些阶段、哪些函数?3、了解过安卓中UI控件分发的机制吗?在relative&nbsp;layout中有一个button,点击button,事件是怎么转发的?4、从点击安装apk,到icon出现在桌面上,这个过程中系统发生了哪些事?从icon出现在桌面上,到应用的界面出现,又经历了什么过程呢?activity调用onCreate之前发生了什么?5、知道AFS(Andrew&nbsp;File&nbsp;System)和PFS(没听清,也查不到)吗?6、介绍一下Java中的反射机制。(拿了一个题,写Java反射的示例)。反射最主要的特点是什么?7、了解Java中的String类是怎么实现的吗?8、在你的安卓项目中遇到过内存泄漏吗?有哪些技术,如果使用不好可能会引起内存泄漏?9、了解过安卓里的handler吗?handler会引起内存泄漏吗?如果handler不指认线程,那它会在哪个线程上?10、介绍一下面向对象的特点。你了解哪些面向对象的设计原则?了解过单一职责原则、迪米特法则、依赖倒置吗?11、设计模式从哪学的?写一下你写过的最全面的单例模式。12、了解过HashMap的底层原理吗?是单一地用红黑树吗?什么时候会转化成红黑树呢?(链表长度大于8)为什么是8个?13、了解过HTTPS吗?加密用的什么机制?14、进程和进程的区别是什么?协程和进程的区别是什么?了解进程间通讯吗?15、算法&nbsp;毒蘑菇、找出string&nbsp;B中的所有字母是否在string&nbsp;A中很注重知识的全面性,经常追问“还有吗”反问:技术栈是什么?(Java+Swift)如何提升算法能力?(其实不太重要,针对面试就是贪心、DP)
点赞 评论 收藏
转发
1 5 评论
分享
牛客网
牛客企业服务