項目地址: NetNut/MVVM_組件化+LiveData+ViewModel+Repository--Jetpack--AS3.6.1
另外過程中有參考官方以及三方的一些文章來完善這個案例:
1.Arouter路由和簡單原理解析
2. AS3.6一些環(huán)境亂碼,模板注釋等的配置相關(guān)
**3. **AndroidX的混淆,自定義防被混淆注解類
4. ViewPager2、SVG矢量圖使用、以及AS有時候需要重啟的問題
5. adb閃退日志手動抓取 - 有時候應(yīng)用直接閃退,logcat無法打印日志的情況
6. databindding事件封裝、防重復(fù)點擊,封裝到Base頁面
**7. **一些過時方法的特殊處理
8. 約束布局Space實現(xiàn)負(fù)值設(shè)置+配合控件ratation實現(xiàn)自由控制間距
等等....工程還是盡量做到了完整...
https://developer.android.google.cn/studio/ 3.6.1 for Windows 64-bit (749 MB)
https://developer.android.google.cn/studio/#downloads
https://zhuanlan.zhihu.com/p/85095730 - 組件化路由方式
https://blog.csdn.net/CsdnXiaoCaiJi/article/details/88088163 - AndroidX新庫與舊庫對應(yīng)
http://www.itdecent.cn/p/579ff380b4af LiveData+ViewModel+Repository搭建簡易MVVM
https://www.jb51.net/article/182708.htm - 視圖綁定替換findviewbyid
https://blog.csdn.net/longxuanzhigu/article/details/104815201 - 視圖綁定替換findviewbyid
https://blog.csdn.net/hwra2008/article/details/104671351/ - Build Output顯示亂碼,記得重啟
https://blog.csdn.net/xiaowu_zhu/article/details/91826467 - 布局轉(zhuǎn)layout,生成databinding
https://blog.csdn.net/zahngjialiang/article/details/60133357 - 忽略xmlns:android="http://schemas.android.com/apk/res/android"
http://www.itdecent.cn/p/934825763b99 - debug模式判斷
https://blog.csdn.net/lbcwnu/article/details/86249671 - arouter源碼剖析,老夫簡單過了一下,本質(zhì)就是我們反射跳轉(zhuǎn)邏輯的封裝分組管理完善易用
https://github.com/alibaba/ARouter/blob/master/README_CN.md - 使用指南-github
http://www.itdecent.cn/p/5c109c51d7ba - 使用網(wǎng)上
http://www.itdecent.cn/p/6021f3f61fa6 - 這篇基本使用也不錯,也有源碼分析鏈接妮
http://www.itdecent.cn/p/358b2fb6f233 - AndoidX混淆
https://developer.android.google.cn/studio/build/shrink-code?hl=zh_cn#obfuscate - 配置編譯指南
https://blog.csdn.net/weixin_34050427/article/details/92876355 - 錯誤模塊刪除+本地
http://www.itdecent.cn/p/3c10432a4726 - 倒計時Counter
https://oomake.com/question/3349078 - getLayoutInflater()和.getSystemService(Context.LAYOUT_INFLATER_SERVICE)之間有什么區(qū)別嗎
https://stackoverflow.com/questions/40882253/classnotfoundexception-didnt-find-class-android-databinding-databindermapper - Make sure that ALL your modules that use DataBinding have it enabled
https://www.cnblogs.com/zhangqie/p/11759690.html - AndroidX的 Tablayout(com.google.android.material.tabs.TabLayout) 的使用
https://www.cnblogs.com/guanxinjing/p/11039643.html Tablayout相關(guān)屬性
https://developer.android.google.cn/jetpack/androidx/releases/viewpager2?hl=en - ViewPager2官方文檔
http://www.itdecent.cn/p/e754cbd2d329 - ViewPager2:官方Viewpager升級版來臨
File->Settings->Build,Execution,Deployment->HotSwap 關(guān)閉hot-swap,不然調(diào)試模式不支持路由報錯
https://www.cnblogs.com/bluestorm/p/9268978.html - SVG矢量圖使用
https://blog.csdn.net/lr123838/article/details/100031835 - svg識別問題,需要重啟AS
http://www.itdecent.cn/p/35b2c72df186 - Android 判斷當(dāng)前是否在UI線程
adb閃退日志手動抓取-Start:
清除舊日志信息輸入命令:,adb logcat -v time >.\\logcat.log 開始抓取日志,同時在手機上操作閃退步驟。
注意:adb logcat -v time:是開始抓取日志命令
>:代表輸出到
.\\logcat.log:代表當(dāng)前路徑下日志的名稱
5.結(jié)束抓取日志
使用組合件:Ctrl+c可結(jié)束日志抓取。
6\. 比如D:\Android\Sdk3.6\platform-tools>adb logcat -v time >.\\logcat.log
adb閃退日志手動抓取-End:
http://www.itdecent.cn/p/a263e46a912f - 無侵入式獲取contenxt或者初始化,主要是利用ContentProvider
http://www.itdecent.cn/p/b93d5ab4494b - databindding事件封裝、防重復(fù)點擊
https://blog.csdn.net/xu1988923/article/details/89405561 - getContext選擇
http://www.itdecent.cn/p/9c646002e2f7 - Arouter Fragment帶返回值跳轉(zhuǎn)
https://blog.csdn.net/anyanyan07/article/details/80885325 - Arouter requestCode必須大于0,不然不回調(diào)onActivityResult
http://www.itdecent.cn/p/9e81720ce8e8 - Arouter 這個分析的好,關(guān)于碎片跳轉(zhuǎn)問題
http://www.itdecent.cn/p/9fb30d8b4537 - 其他頁面路由任意主頁碎片
https://developer.android.google.cn/jetpack/androidx/releases/lifecycle#declaring_dependencies - Lifecycle依賴配置(ViewModel、LiveData)
https://blog.imallen.wang/2017/08/04/AndroidArchitecture01/ - google推薦架構(gòu) viewmodel(livedata)+view+model(resposity->room/net)
https://stackoverflow.com/questions/59448845/no-static-method-metafactory -- okhttp3編譯問題
https://blog.csdn.net/wonghoman/article/details/52848871 - onCreate多次初始化的問題解決 - 組件化可能遇到
https://blog.csdn.net/speverriver/article/details/69397749 - 整理下module模塊,外層增加文件夾
http://www.itdecent.cn/p/c3558eabb4f8 - 一些方法過時處理,
http://www.itdecent.cn/p/b6a818dbd99b - @SuppressWarnings("unchecked") @SuppressWarnings("de")
http://www.itdecent.cn/p/23effbad0086 - 多渠道配置參考。感覺如今沒必須多渠道了,做馬甲包倒是可以
android:rotation="90" - 控件做旋轉(zhuǎn)配置
http://www.itdecent.cn/p/a71f6511e477 - 約束布局Space實現(xiàn)負(fù)值設(shè)置
apt和javapoet ???
內(nèi)部還實踐了一把svg圖像加載。實踐了最新的jetpack組件。以及相關(guān)Rx網(wǎng)絡(luò)的封裝??梢怨﹨⒖?。 能指教的可以指教完善一把工程。環(huán)境都是目前比較新的版本和環(huán)境,依賴三方也是支持androidX的。