安卓APP完整开发流程-完整流程概述
牛客高级系列专栏:
安卓
嵌入式
本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验,该专栏整理本人对安卓APP完整开发流程的理解;
网上安卓资料千千万,笔者将继续维护专栏,一杯奶茶价格不止提供答案解析,承诺提供专栏内容免费技术答疑,直接咨询即可。助您提高安卓学习效率!
正文开始⬇
1、APP完整流程
下图是一个APP完整的开发流程:
下文先做统一、完整的简述,并在接下来的系列文章中进行详细的拓展说明。
1.1 配置环境
工欲善其事,必先利其器。在开发安卓APP之前,相信各位同学都知道要下载Android Studio。Android Studio作为当前最主流的安卓APP开发集成环境,为我们提供了代码编写、编译、打包等全流程的环境。这其中最重要的有JDK、安卓SDK、Gradle、Android Gradle Plugin等,正是因为Android Studio可以自动集成了这些模块,我们只要点一下 run 按键,等待一会我们编写的APP就可以运行在我们手机上。
1.2 创建工程
在配置好开发环境之后,就可以开始去创建工程。Android Studio提供很多模板工程可以建立,如下图:
不过在实际的企业开发中,很多部门会有自己的模板工程,也就是脚手架工程
,意思就是该新的模板工程已经包含了本部门以往积累的可复用性的代码。每来一个新的业务需求,就从脚手架工程开始做开发,而不是重新创建一个空白的工程。
1.3 工程配置
创建完工程后,在编写代码之前,需要完成基础的工程配置。常见的工程配置包含但不限制有:
- 配置 Gradle:在 build.gradle 文件中,添加 Gradle 插件和依赖项,指定构建工具版本和 Gradle 版本;
- 配置 SDK 版本:在 build.gradle 文件中声明 minSdkVersion、targetSdkVersion 和 compileSdkVersion,以及对应的 SDK Platform 下载、安装与管理;
- 配置权限:在 AndroidManifest.xml 配置文件中添加需要的权限,以及 activity 和 service 的声明等;
- 配置混淆:在 build.gradle 文件中配置混淆规则,以保护项目的安全性;
- 配置打包签名:在 build.gradle 文件中配置打包签名,以生成签名 APK 文件,确保项目的安全性;
- 配置构建类型和渠道:在 build.gradle 文件中配置不同类型的构建版本和渠道,方便项目管理和分发。
- 配置 ProGuard 和 R8:在 build.gradle 文件中配置 ProGuard 和 R8 规则,以优化和压缩 APK 大小;
当然,不是所有的APP都需要配置这么完善的工程配置,上述混淆、签名、渠道等关键词如果现在还看不懂,不用担心,本系列都会逐一讲解,并提供免费答疑,包你懂
。
1.4 编写代码
现在主流的APP编程语言是Kotlin和Java,在选择使用哪种语言后,就可以开始创建页面,布局文件、图片资源、字符串资源等等。这阶段除了完成业务需求,还需要注意代码规范,提升代码可读性和可维护性,并适当的加上注释。最后再进行代码优化,提升应用的性能和稳定性。
1.5 引用第三方库
在编写代码的过程中,我们可能需要用到一些第三方库。通过他人提供的高实用性第三方库提高自己的业务效率是很常见也很重要的。比如使用greenDao第三方库做数据库管理,使用okhttp/retrofit第三方库完成网络请求等等,在Android Studio使用第三方库的方式一般有:
- 使用 Maven Central 或其他远程仓库;
- 使用本地 jar/aar 包;
- 集成本地另一个模块开发库;
1.6 多项目构建
随着业务发展,我们的代码一定会越来越多,导致不同功能的代码之间“你中有我,我中有你”的尴尬局面。因此引入了“组件化”的概念。企业级别的APP绝大部分都是采用组件化框架进行开发,组件化的集成的表现形式就是多项目构建。我们可以把不同模块的代码放到不同的子工程中,独立的维护。
1.7 多Dex支持
一个APP,随着业务的不断发展,代码量就会越来越庞大。那么总有一天我们会遇到一个方法数超过65536的问题。这时候我们就需要引入多Dex的支持。
1.8 代码混淆
在发布应用程序时,为了保证应用程序的安全,我们应该对应用程序的源代码进行代码混淆处理。这样可以提高应用程序的安全性,避免恶意用户通过反编译获取应用程序的源代码,从而窃取应用程序的关键信息,比如私人账户、密码等。代码混淆处理可以大大减少应用程序被反编译的可能性,因为它能够将应用程序的源代码经过一系列处理后,使得受到保护的代码难以被恶意用户进行逆向工程破解。
具体来说,代码混淆主要通过以下优化方式来提高应用程序安全:
- 去除无用的变量和方法;
- 混淆类和方法名;
- 混淆成员变量;
- 分离代码逻;
1.9 签名、打包
签名可确保应用在安装和运行时没有被篡改或被恶意地替换。首先签名可以确认发布者的身份。如果没有签名,别的应用开发者可以使用相同的包名来替换我们已经安装的这个程序。因此,使用签名的话,别的应用开发者不知道已经安装的程序的签名是什么,就无法使用相同的包名来替换我们已经安装的这个程序。另外一个作用就是我们可以确保这些APP的完整性。因为签名会对我们的APP里面的每一个文件进行处理,从而确保我们的APP程序把原来的文件给替换。
1.10 构建定制
有些时候我们可能需要去使用同一个工程,去构建出不同的APK。比如说发布出不同的马甲包,这时候就涉及到了构建的定制。比如一些APP只是包名不同,或者桌面图标不同,在这种时候,我们就没有必要去多维护一个工程。只要在同一个工程中做不同的构建定制即可。
1.11 多渠道打包
针对我们开发的APP,发布在不同的应用市场,如华为应用商店,腾讯的应用宝等,可能有不同统计需求。我们需要为每一个应用市场去发布一个安装包。在安装包里面去添加不同的标志,以区分不同的渠道。比如统计我们的APP在华为平台还是腾讯平台更受用户欢迎。在后续的内容里面,将会介绍一些常用的多渠道的方式。
1.12 线上运维
不是说把APP发布到应用市场就完事了。一般来说,还需要对线上应用包的崩溃情况或者错误业务逻辑做修复,对用户反馈的需求做迭代,通过埋点获取用户习惯从而更好的设计产品等。持续提升版本质量,品牌口碑。
以上就是安卓应用程序完整开发流程,接下来会结合实例来逐步讲解每一个点。
要成为一名高级安卓APP开发工程师,只有对安卓APP完整开发流程有全面性的了解,才能在技术、产品、市场这三大模块,帮助团队找到更优的解决方案。 本专栏详细介绍安卓APP完整开发流程:配置环境--》创建工程--》工程配置--》编写代码--》引用第三方库--》多项目构建--》多Dex支持--》代码混淆--》签名/打包--》构建定制--》多渠道打包--》线上运维。 安卓系统工程师也可以参考~