PlayAndroid

Introduction: 🔥🔥🔥 Kotlin + MVVM + LCE 版玩安卓,暗黑模式、横竖屏、无网、弱网、无数据、加载失败等等各种情况,协程、Room、Hilt、DataStore、LiveData、Retrofit、屏幕适配、本地缓存、多语言切换、多 lib,你想要的我都有!!!
More: Author   ReportBugs   
Tags:

项目新增了 Compose 版本,大家如果想体验的话下载代码直接切换为 main 分支即可,有问题直接提 issues。

体验

如果想要下载尝试下的话可以直接点击链接进行下载,或者扫描下面的二维码进行下载。

https://www.pgyer.com/llj2

img

如果上面的下载次数用完的话可以点击下面链接: https://github.com/zhujiang521/PlayAndroid/raw/master/apk/app-release_7zip_aligned_signed.apk

玩安卓 MVVM 版截图

首先来看下之前已经实现的大概样式吧:

初始样式

看着样式还好,但之前只是简单做了下,实现了最基本的功能,切换成横屏之后基本没办法看,更不要说分屏、夜间模式、本地缓存、无网弱网情况、无数据情况等等了,接下来看一下现在新增的适配页面吧。

夜间模式

横屏适配

无网、无数据适配

实现过程

项目用到了很多技术,基本上都是现在安卓 app 的最新标配,比如:MVVM、JetPack(LiveData、Room、ViewModel)、Retrofit、协程、Glide 等等。

其实在优化这个 Demo 的时候觉得做了好多事,但是真的让我写的时候就有点懵逼了,因为用到的东西比较多,随便拎出一个来都能单独写一篇文章;

比如在 apk 大小的优化,这个 apk 最后被我优化到只剩 3.3MB,现在随便一个 apk 都得几十 MB 吧。apk 优化的挺多,比如代码混淆、资源文件的混淆、不需要的语言删除、图片转 webp 等等,如果想深入了解 apk 压缩的话,可以去看我之前写的这篇文章:玩安卓必须要掌握的性能优化之 APK 极限压缩

又比如新增的浏览历史功能中用到了Room,没有Room的时候基本都在使用原生或者使用LitePalGreenDAO等来实现,虽然LitePalGreenDAO也是ORM的方式来实现的数据库操作,但是总体来说还是没有Room好用,Room写好实现的 DAO 接口文件即可,在你编译的时候会直接生成对应的实现类,真的很香。

类似上面的还有很多,如果代码哪块写的不好或者有优化的地方欢迎大家告诉我或者给我提 issues。

使用到的库

banner

bugly

SmartRefreshLayout

utilCode

glide

retrofit

dataStore

coroutines

room

License

Copyright (c) 2020 朱江

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools