实战第15篇:专栏小结&如何打包安卓Apk

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情


一、专栏小结

掘金《Java转Android》专栏,我说要更新30期,今天是第15期,一半了。

1.1 内容概括

看前面我们都学习了啥内容:

  1. Java转Android:第1天 HelloWorld
  2. Java转Android:第2天 用Button做了个抽奖App
  3. Java转Android:第3天 Listener实现问答App
  4. Java转Android:第4天 用Layout布局实现罗盘和三叉戟
  5. Java转Android:第5天 用Activity和Intent实现小通讯录
  6. Java转Android:第6天 BroadcastReceiver知道你换了壁纸
  7. Java转Android:第7天 Handler做一个倒计时功能
  8. Java转Android:第8天 Service帮你背诵古诗词
  9. 实战第09篇:SharedPreferences持久化存储记事本
  10. 实战第10篇:JSONObject联网解析天气预报
  11. 实战第11篇:MediaPlayer实现森林协奏曲
  12. 实战第12篇:SurfaceView实现视频播放的展示
  13. 实战第13篇:Sensor距离传感器实现小猪睡觉趣味App
  14. 实战第14篇:方向传感器+RotateAnimation做一个指北针

Java转Android并非指我是一个Java开发者,转到Android开发了。而是,我从Android开发角度看,如果想用Java语言开发Android,怎么快速入门。

第9期之前,叫Java转Android:第几天,后来官方审核感觉,我有发布个人日记的嫌疑,不推荐了。后面,我开始改名叫实战第几篇

前14天,我们涉及到了环境的搭建页面布局和控件四大组件网络交互数据持久化存储多媒体播放传感器。作为10年老Android,我可以负责任地告诉大家,这些知识,加上你自己的举一反三、融会贯通,足以应付日常开发了。

1.2 专栏思路

因为有大赛经验,我经常去高校和大学生交流,有时也客串讲师角色。

我就发现,如今快节奏的社会,使人们的学习生活都变得极快。以前一部90分钟的电影才可以让人们悲喜交加,而现在10秒钟的短视频就能控制你的喜怒哀乐。现代人不会愿意付出很长时间去学习一项课程。即便愿意学,他们更愿意选择速成。

然而,速成是一个伪命题。我就利用这个心理,进行合理的引导。

传统教学,采用的是大纲式的单轮教学模式。拿Android开发举例,第一章是UI控件,一次性教给学生几十种控件的使用方法,跟词典一样,其实学生根本接受不了,他不明白某个知识点为什么要学习这么多种实现方式(同一个跳转学习3种方式实现),根本用不到,而且费时费力,因此会抵触。

我的速成大法理念是:轮廓式多轮教学模式。

第一轮关键词是了解。了解Android开发环境,基础UI知识,四大组件基础,数据存储基础,网络基础等等,重点了解Android可以做什么,目的在于入门,极短时间了解整个安卓体系,让他们以为学成了,提高学习者的兴趣。

image.png

第二轮关键词是应用。学会开发环境的快捷操作,复杂UI的使用,掌握四大组件要点,重点掌握Android如何进行开发,目的在于应用。让他们感觉,还有很多东西要学。

image.png

第三轮关键词是提升。讲解自定义UI的开发,Android各个版本的兼容,开源的第三方网络框架,移动开发模式的使用等等,目的在于从教学的知识体系提升出来,慢慢向企业开发化进行过渡。

image.png

所以啊,我们的第一轮就结束了。

其实,大家在很短的时间内,已经接触到了Android完整的知识体系。你想啊,连传感器都有介绍,还不全吗?但是,这都是比较表层的。

下面,是该做一个小结的时候了。我们来学习如何打包发布程序。

二、安卓apk的打包发布

APKAndroidPackage的缩写,即Android安装包

在Android平台中,直接执行文件被打包为apk格式,通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

那么我们的Android Studio是如何把代码运行到手机里的呢?

image.png

先是编译打包,然后通过签名文件进行签名,最后通过ADB跑到手机中(模拟器中)运行。

这里面提到几个词:编译打包、签名文件签名。

2.1 打包

打包,不是收拾剩饭啊。是指把代码组装成apk文件,apk文件其实是一个压缩包。

APK文件解压缩后,主要结构如下

  1. META-INF\(注:Jar文件中常可以看到)
  2. res\(注:存放资源文件的目录)
  3. AndroidManifest.xml(注:程序全局配置文件)
  4. classes.dex(注:Dalvik字节码)
  5. resources.arsc(注:编译后的二进制资源文件)

如何生成呢?我要把代码转成apk安装包发给女朋友,说送她一个特殊的包包。

1、选择生成带签名的apk。

image.png

2、选择要打包的模块。

image.png

2.2 签名文件

3、选择或者创建key store签名文件。

image.png

这个key store就是签名文件,签名文件就像是你的签名和印章,用来确定你apk的唯一性。假如,我是说假如,我把你的apk拿过来改改,我说是你的,但是加入了我的广告,这肯定是不行的,因为没有你的签名。

如果你有签名文件,可以直接选择,没有的话,可以创建,创建也不复杂,填信息就好。

image.png

4、选择打包文件存放位置,选择加密方法。

image.png

5、打包完成,生成apk文件。

image.png

好了,拿着这个包,送人去吧。

最后

后面的文章,我不会频繁更新了。

原因主要是正向反馈不那么强烈,导致我怀疑写这个专栏的必要性。

主要体现在2点:

第一,我的日更,正好赶上8月更文活动,平台查薅羊毛凑字数的水文,比较严格。开头写上“这是我参与更文的xx天……”,容易被误伤。

第二,即便文章被推荐了。从以往反馈看,大家对于Android其实不看好。一来是行业不景气,二来是kotlin兴起。那我写这个教程,其实帮不到很多人。也就是,没有需求。

鉴于以上两点原因吧,再加上我鼓捣安卓十多年了,也不需要提高这方面技能了。我完全可以投入同等精力,去另写一个受众更广的专栏。

我原本计划的第二轮内容如下:

模块 知识点
Android运行环境 Android studio 快捷键;Android studio 插件的使用;了解gradle
UI基础 布局:FrameLayout、TableLayout;控件:ListView、ScrollView;Canvas绘制
按键交互 按键事件监听
Application 程序生命周期
Activity 启动模式
Fragment Activity加载;ViewPage联用实现多屏滑动
Intent 显式和隐式跳转 ;数据的前传和回传
BroadcastReceiver 动态注册;自定义广播、本地广播
Service 后台和前台通信;IntentService的使用
权限 动态权限申请
数据存储 SQLite事务; 升级数据库;文件存储
ContentProvider 访问其他程序;创建自己的内容提供者
屏幕适配 Nine-Patch的制作;Shape绘制形状
网络通讯 使用volley访问网络;解析gson解析json
多媒体 通知; 摄像头
传感器 光照传感器
应用发布 混淆

我原本计划的第三轮内容如下:

模块 知识点
运行环境 编译的原理和步骤;学会调试
UI基础 如何使用陌生新控件; 编写自定义控件; 从github上找开源炫酷控件
第三方开源库 glide图片加载库;Butterknife 注解;eventbus事件总线;Retrofit 实现异步;Okhttp 网络请求;Retrofit 注解请求;RxPermissions 权限请求;Arouter 路由; Greendao 数据库
开发模式 基于Rxjava+Retrofit实现MVP开发;MVVM开发模式
版本兼容 权限申请;动态广播和服务;V4、v7包
第三方商业库 百度地图;支付宝支付;微信支付;微信分享
常用功能实现 版本检测更新的实现;广告轮播图; 数据缓存和清理
自建基础框架 封装BaseActivity;封装BaseFragment;封装BaseAdapter;文件管理;网络管理;
发布 多渠道打包;jenkins自动打包; 加固
逆向编译 逆向解析apk
协同开发 Git;SVN

如果,大家有兴趣的话,催更吧。我依然还会更新,只是速度放慢了而已。

我是TF男孩,关注我的掘金专栏《Java转Android》。日读1000字,30天可入门安卓开发。

本文由TF男孩在掘金社区独家发布,转载请注明出处。

猜你喜欢

转载自juejin.im/post/7131892289747566605