loslauncher

tmyb

为啥想做loslauncher?说来简单,现在手机自带启动器越来越臃肿,广告多到点错好几次才能打开应用。那天刷短视频又被弹窗广告气到,干脆拍大腿决定自己写个干净的启动器。

环境准备折腾记

翻出吃灰的安卓手机当测试机,系统还是Android 10。开电脑先下Android Studio,这玩意安装包就占了十几个G,等进度条的时候泡了壶茶。创建新项目时手滑勾错语言选项,搞了半天才切回Kotlin。

画界面比想象中费劲

想着就做三个基础功能:

  • 显示所有应用图标
  • 下滑打开搜索框
  • 长按弹出卸载选项

布局文件写GridView时犯蠢了,RecyclerView和GridView参数搞混,图标堆在屏幕左上角像蚂蚁搬家。调试时不断改layout_width参数,从match_parent到300dp来回切了十几次。

包名列表是个坑

用PackageManager获取安装应用时栽跟头。查了半天文档才发现要同时加GET_ACTIVITIES和MATCH_ALL权限,否则系统应用死活显示不出来。测试时发现某购物APP永远在列表排查发现是没按字母排序,临时加了段*()才理顺。

内存泄露事故现场

周末连续运行八小时测试,手机烫得能煎蛋。用Android Profiler查完直冒冷汗:Adapter里Context没做弱引用处理,每次横竖屏旋转都泄露Activity实例。改完还在onDestroy里加了*,否则后台偷偷跑着资源回收器。

那点倔强

眼看功能都实现了,强迫症上来非要加拖动排序。实现OnDragListener时把item的位置计算错乱,拖到第三个图标时后面的突然集体瞬移。气得对着电脑屏幕比中指,重新写坐标系换算公式才搞定。搞完这功能相当于把前三天的工作量又重做一遍。

装到备用机试用了两周,速度确实比原来快,但耗电量感人。老婆拿着装了loslauncher的手机皱眉:“这黑白网格界面,看着像九十年代文曲星”。想想也是,半条命搭进去弄的东西,可能真就我自己用得开心。亲手造轮子的快乐嘛就是明知道费劲还非要折腾的这股傻劲儿