我和 Android 的那些事

时光荏苒,已经接触 android 10年了


第一个 Android 设备 (ZTE v880)

时间要回到10年前那个夏天,也就是2011年

那个时候,我高中毕业,没有在四川老家,去了深圳。因为要上大学了,我便拥有了我人生中的第一部Android手机

中兴V880

20210523_220900_12

—— 但,那并不是我人生中的第一部手机。

在这之前,那个时代比较火的还是java(爪哇)Symbian(塞班)

我的第一部手机还是 天语手机 (具体型号记不得了) 。那个时候还在上高中, 手机里面支持java游戏。为了玩游戏,我经常偷偷去网吧,别人去网吧聊天、玩游戏、看电影,我却去下载软件游戏。有一个叫着 手机乐园 的网站是那个时候经常逛的,里面有好多的Java软件和游戏。差不多里面的80%的软件、游戏我都下载过,毕竟有些收费,还有些不好玩,也就卸载了。真怀念那个年代游戏一启动就会出现的Java咖啡杯

中兴V880,是当时联通的定制机,内置了一堆定制应用。也是那个时候知识库接触到了WIFI这个神奇的东西。

愤怒的小鸟水果忍者会说话的汤姆猫是哪个时候比较热门的游戏。

就这样 中兴V880 成为了我 Android 的启蒙设备。开启了我的大学生活

初识刷机

之后的某一天,在网上查到可以删掉手机里面的一些内置软件。节省出一定的空间,便又开始了自己的折腾之路。

参照网上的方法,一顿猛折腾,然后导致的后果就是删掉了系统核心文件,手机开机无法进入系统了,
之后束手无策,没办法就去了营业厅,花了50元RMB 给我进行了系统恢复,但是看到瘫痪的手机又恢复生机,心里的烦恼也烟消云散。我心里便想:一定要好好研究下这个刷机,以后再遇到,自己就能解决,不用再花钱找别人解决了。

之后, 逐渐知道了 RecoveryBootloaderRoot

20210524_003524_02

20210524_003604_87

20210524_003707_33

刷机: 只要解锁了BL,Root之后进入REC 然后通过 sdcard 进行卡刷,就可以让手机重装系统,当然,为此也付出了代价 因为不是很熟悉,没有备份数据,自己的数据全部丢失了,

印象深刻,还有一个Root工具叫z4Root

市面上的第三方ROM比较多,国内MIUIFlyme 两大深度定制的厂商就是当时的扛把子,

除此之外,热门的还有乐蛙

冷门点的就是百度云(不是现在的百度云盘)、深度点心

原生就是大名鼎鼎的 CM (现在的LineageOS)、AOSP、国内的魔趣

这些系统在大学时,差不多都在V880支持的Rom上刷过。

就这样,刷好一个Rom之后,觉得系统不好,UI不好看,又刷另外一个。就这样周而复始,来回折腾。

人气高的Rom 相对多一些,不怎么热门的设备,当然Rom刷机包也就寥寥无几,或者说压根就没有。

安卓时代火爆的论坛 安智网安卓市场木蚂蚁91应用市场机锋市场

自己用的最多的话,应该是豌豆荚刷机精灵,对这两款的使用一直延续了很多年

第二个 Android 设备 (Google Nexus 5)

时间到了2013年秋冬季

这个时候,我已经参加工作了,在上海从事 Android 相关的开发工作

那一年夏天,Android Studio 发布了

20210524_002539_12

我马上从Android ADT Bundle 转向了 AS

20210524_002641_12

转眼又到了换手机的时候了,经过之前对android的折腾,也出于方便刷机

这次我看上了Google的亲5儿子

Nexus 5

20210523_231602_42

这款设备默认系统是Android 4.4 KitKat,引入Holo界面

也是那年,通过在eoeAndroid网站内认识到有GDG(Google Develper Group)这个社区,第一次参加上海GDG的社区活动

谷歌Nexus 5 的系统刷起来很方便,只需要下载官方Factory image,然后unzip。手机reboot进入Bootloader,解锁设备,然后执行脚本,自动刷人即可

相比卡刷,线刷更方便,

什么是卡刷? 什么是线刷?

卡刷:需要将刷机包复制到内存卡,然后通过recovery环境选择该包进行刷机
线刷:通过USB将手机和电脑连接,手机进入fastboot下通过电脑上的刷机包执行脚本到手机刷机

针对Google Factory Image 进行线刷

adb reboot bootloader 手机reboot进入Bootloader
adb unlock oem 解锁设备
然后执行相应的平台脚本

当然,也可以通过线刷OTA升级

什么是OTA ? OTA 就是Over-the-Air Technology (空中下载技术)

在recovery执行adb sideload ota.zip命令

常用的root工具应当属Chainfire大神的superSu

20210523_235629_65

第三方Recovery,比如TWRP

20210524_000053_48

使用 Nexus 5 的时候有一个好玩的apk,叫着muiltrom

20210524_000404_14

这个app可以安装多个系统,相当于手机的多系统启动。自己也下载了不同的Rom安装在Nexus5上面来回折腾。

自从参加了上海GDG的活动,让我近距离接触到了Google,经常会参加 上海GDG的活动,每年的Google IO 也会准时观看。

第三个 Android 设备 (Google Nexus 5X)

在这个版本,因为Nexus 5不支持升级,屏幕坏了,我入手了Google Nexus 5X

20210524_021112_70

刷机热潮,从Android4.0-6.0这期间(2011年-2016年)达到了顶峰,后面日渐式微

初识 VR

2016年,Google 在IO大会发布了Daydream VR 设备

20210524_021225_78

一个偶然的机会,我参与了兼容Google Daydream 智能设备开发

通过逆向分析 Google VR 手柄蓝牙BLE传输格式

使用Google VR SDK 在 Unity 中绘制VR launcher

利用四元数和欧拉角绘制openGL手柄蓝牙BLE的3D实时效果

第四个 Android 设备 (Google Pixel)

2017年, 入手了降价的 Pixel 第一代 和 Google Daydream 。

20210524_022146_28

从CardBoard 第一代磁力控制 到 CardBoard 第二代电容屏触碰控制, 到现在Google Daydream.

20210610_082507_60

让我看到了VR的未知世界。让自己身临其境

在Daydream 所有好玩的VR游戏中,我觉得网易的那款破晓唤龙者相对比较不错

同年,回到上海参加2017 GDD(Google Develper Days)大会,也是自己第一次参加谷歌开发者日活动

有幸亲眼见到Google的一些员工:Laurence Moroney 、Wayne Piekarski等

获得Google送的 Android Things 物联网开发套件

20210610_082039_49

20210610_081829_49

第五个 Android 设备 (Google Pixel 2)

2018 年 ,Pixel 第一代因为屏幕和麦克风问题 被迫跟换了Pixel 2

20210524_021613_85

同时入手了Google Home

20210524_022324_73

通过刷机路由器(PDCN),将Google Home 设置成功

20210524_023152_24

结合Android Things , 熟悉了GPIO相关的入门知识

通过Android Things 控制二极管的开启和关闭

同年,又一次赴上海参加了2018年的GDD大会。在会场外再次偶遇了Laurence Moroney,并尝试用英文和他打招呼(虽然我的口语和听力不好,尝试沟通,也是对自己的一种锻炼)

逆向工具

通过几年的正向App开发经验,熟悉了一些逆向相关的工具,从事了几年逆向开发工作

Xposed Hook:解锁设备,刷twrp,安装面具root 再装Xposed 进行Hook Java 层

Xposed

20210524_022751_69

Magisk 面具

20210524_022907_36

Frida:通过python/Js 代码进行 hook Java和Native层

Frida

20210524_023605_74

IDA: 静态分析和动态调试Andorid SO 文件

IDA Pro

20210524_023846_95

Jadx

20210524_024452_58

第六个 Android 设备 (Pixel 4a)

20210524_025313_08

时至今日

谷歌在今年下半年即将发布 Android 12 版本

20210610_073224_19

  • 从 1.1 到 12
  • 从 Davilk 到 ART
  • 从 Material Design 到 Material You
  • 从 MVC 到 MVP、MVVM
  • 从 DataBinding 到 ViewBinding
  • 从 Jetpack 到 Jetpack compose
  • 从 Dynamic 到 Scoped Storage
  • 从 Eclipse ADT Bundle 到 Android Studio Arctic Fox
  • 从 Java 到 Kotlin

android 陪我度过了10年,我看过它的成长蜕变。

再谈刷机

刷机近几年也变得不是那么流行了,曾经火爆的android论坛也日落西山。

豌豆荚刷机精灵都在被收购之后,逐渐没落了。

很多厂商开始关闭了官方的BL解锁通道,很多手机至此告别了刷机的可能性,也使刷机变得更加困难跟复杂。

像小米,需要解锁,前提需要设备登录小米账号指定天数,方可解锁。

刷机是我一直的乐趣,我为什么热爱刷机呢?

刷机可以给我带来刷过新系统之后,等待开机时的那种新鲜感和无限期待,有root之后,卸载各种预转软件,那种发自内心的自由。有明知道刷机之后可能会变砖,老子就是要刷一下的那种强烈的探索欲和不服输。

因此,对于谷歌的亲儿子来说,刷机这块没有影响。每到谷歌在安卓新版本发布的时候,按捺不住内心的喜悦,怀着急迫的新去更新系统。一方面是检查尝鲜,另一方面是更早适应android新特性,为APP适配该特性提前做准备。

结语

时光荏苒,已经接触 android 10年了

有时我在想,我应该以什么样的态度去看待android

它只是我在公司挣钱的工具?

不,一路走来。我有信仰,我有快乐。

那种快乐应该就是除了枯燥的工作之外,折腾、探索欲和不服输之后的快乐

其实在内心深处,想成为android专家。将android这个生态吃透。

但,那不是一件容易的事情 ~

20210610_083539_46

我是一名 android 工程师,未来的android 会是怎样 ? 我又会是怎样 ? 留给时间 ….

-------------本文结束感谢您的阅读-------------
if (本文对您有用) { Pay (请随意¥打赏) } else { Commit feedback (底部评论区提交建议、反馈) } 感谢支持!
0%