Android Studio最終篇 - 架構

零零散散的寫了七八個月,以後更新看時間和心情,代碼,希望能幫到你。
github地址:https://github.com/geeklx/myappkuangjia20190806/tree/master/yun_kuangjia2019

Android業務組件庫:https://blog.51cto.com/liangxiao/2146536

APP框架2019年版本

多渠道打包和閉包,支持分包安裝,UI獨立,網絡請求獨立
此項目還有一些不完善的地方,可以留言或如有疑問請看地址:https://blog.csdn.net/qibin0506/article/details/71307301

另外新增:支持androidx,版本號到最新:28 28.0.3 3.4.2 5.1.1

1.支持美團walle多渠道

不會的看地址:https://www.jianshu.com/p/c516cf9138ea
地址:https://blog.csdn.net/yinxing2008/article/details/82588075

2.支持tinker1.9.3.2多渠道熱修復

不會的看地址:http://v.qq.com/vplus/bugly

3.支持護眼模式:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\huyan

4.支持類網易雲播放器後臺保活:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\playermusic

5.支持HIOS3.0版本,支持scheme協議

不會的參考地址:https://www.cnblogs.com/whoislcj/p/5825333.html
地址:https://www.jianshu.com/p/57f79fc83233
地址:https://www.cnblogs.com/zhang-cb/p/7093769.html
地址:https://blog.csdn.net/cheng545/article/details/80099137
地址:https://www.cnblogs.com/whoislcj/p/5825333.html

6.支持電話,第三方語音視頻打斷音樂:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\broadcastreceiver

7.支持打分星星和半星:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\ratingstarview

8.支持一行集成支付寶,微信,銀聯支付:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\pop\bottompay

9.支持一行分享到第三方:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\pop\share

10.支持截長圖到bitmap:D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\utils\cutimg\ShareBitmapUtils.java

11.支持藍牙傳輸數據交互:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\videoplay\bt

12.支持GSY播放器:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\videoplay\gsy

13.支持餃子播放器:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\videoplay\jiaozi
附:全局搜索查看demo用法:JZVideoPlayerStandard

14.支持XCL-Charts曲線圖:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\videoplay\quxiantu

15.支持EvenBus(全局搜索:EventBus.getDefault())

16.支持LxCoolViewPager:優化100頁卡頓,滑動翻書效果

附:D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\viewpager\LxCoolViewPager.java

17.支持打字效果:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\widgets\dazi

18.支持圖片懶加載:D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\widgets\recyclerviewnice\XRecyclerView.java

19.支持圖片四個角圓形自定義:D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\widgets\CustomRoundAngleImageView.java

20.支持EasyPermission權限:D:\githubproject\yun_kuangjia2019\geeklibs\slbappcomm\src\main\java\com\example\slbappcomm\base\EasyPermissionMainFragment.java

21.支持自定義webview2.0:新增js退出交互操作

D:\githubproject\yun_kuangjia2019\geeklibs\libwebview

22.支持一行jpush推送:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappjpush

23.支持一行jpush統計:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappstatistics

24.支持一行Umeng統計:

D:\githubproject\yun_kuangjia2019\geeklibs\slbappumengstatistics

25.支持Glide4.9.0:

D:\githubproject\yun_kuangjia2019\geekcommonlibs\libglide47

26.支持自定義升級:

D:\githubproject\yun_kuangjia2019\geekcommonlibs\libupdateapputils

27.支持bugly升級:

https://github.com/BuglyDevTeam/Bugly-Android-Demo/issues

28.支持Cmake最新NDK寫法:

D:\githubproject\yun_kuangjia2019\geekapp1libs\geekapp1\build.gradle

29.支持LottieAnimationView:全局搜索:LottieAnimationView

附:打版方式:

APP打版步驟:
1.切換publish_config下的0 1 2 :
defaultVariantIndex = 2
// 測試,預生產,線上
variants = ['BXNT_101_NATION', 'BXNY_101_NATION', 'BXN_101_NATION']

2.在Terminal中執行順序:
gradlew chVar
gradlew publishDefault或publish
前者是打一個 後者是全量

3.每個獨立lib下面的// /*rep/implementation (name:'biz-identification_bxn_nation', ext:'aar')
引用都不能換行,保證aar切換環境正常。

樑肖51CTO

附demo用法

地址:https://github.com/geeklx/MyApplication
地址:https://github.com/geeklx/myapplication2018

此類放置自定義View和第三方控件集合:(按順序)

anroomcrash:驗證APP崩潰和內存溢出的方法

assetsfitandroid:1.拍照上傳

              2.複製assets目錄到本地緩存cache目錄文件
              3.訪問assets/cache中的文件方法
              4.緩存購物車寫法 寫入txt到緩存

bannerview:防止OOM寫法的bannerview

bannerviewquan:市面大部分bannerview寫法

baseactivitys:加了堆棧管理和678android權限的base類

cacheutil:清除緩存方法

caranimation:購物車添加動畫(防止多次點擊的OOM)

changelanguage:切換語言

common:BaseApp BaseAppManager BaseViewHelper

emptyview:正在加載 暫無數據 有數據 無網絡 佈局切換

expandableview:非常好用的Expandableview

fileprovider:鴻洋的6.0 7.0 8.0 權限管理類

flowlayout:鴻洋的FlowLayout(支持標籤佈局選中)

glidenetpicpressnormal:支持後臺返回兩張圖片 touch顯示不同的圖片效果

handleralluse:面試必會的handler所有用法

likebutton:點贊效果

loading:加載中(防止OOM)

musicutils:播放raw util

networkview:根據WIFI開關來廣播切換佈局 鬥魚視頻聯網播放功能

qcode:高斯生成二維碼效果

recycleviewalluses:最強RecycleView寫法(待更新)

recycleviewgallery:炫酷的RecycleView Gallery

recycleviewmultitype:一個比較好的第三方RecycleView寫法 很穩定

ringutil:系統聲音(待優化)

scrollview:黑暗之魂3閱讀條文效果

shoppingcar:非常好用 仿餓了麼購物車一套代碼

size:dp轉換px工具類

smartbar:返回|主頁 工具類 一行解決你的問題

splash:歡迎頁仿獵聘

statusbar:浸透式topbar

tablayout:最全tablayout

toasts:棄用(可參考)

toasts2:豐富多彩的Toast

updateapk:XML配置升級APK

uploadpic:最強微信圖片上傳(無bug版 修改了loaderManager兩次finish的問題)

usersdk:登錄回調處理邏輯跳轉

widget: 1.AlertView:仿IOS彈窗

     2.AutofitTextView:自適應的textview
     3.CircleImageView:圓形ImageView
     4.CircularSeekBar:中規中矩的SeekBar 圓形進度條
     5.SmoothCheckBox:中規中矩的CheckBox
     6.SwitchButton:中規中矩的開關

zothers:1.AutoHideInputMethodFrameLayout:非常好用的鍵盤隱藏工具layout

     6.SpannableStringUtils:給textview設置超鏈接
      ((TextView) helper.getView(R.id.brademo1_tweetText)).setText(SpannableStringUtils.getBuilder(item.getText()).
                     append("點擊查看博客鏈接").setClickSpan(new ClickableSpan() {
                 @Override
                 public void onClick(View widget) {
                     Uri url = Uri.parse("https://blog.51cto.com/liangxiao");
                     Intent intent = new Intent(Intent.ACTION_VIEW);
                     intent.setData(url);
                     mContext.startActivity(intent);
                 }
             }).create());
     2.ClickableMovementMethod:給textview設置超鏈接
      ((TextView) helper.getView(R.id.brademo1_tweetText)).setMovementMethod(ClickableMovementMethod.getInstance());
             helper.getView(R.id.brademo1_tweetText).setFocusable(false);
             helper.getView(R.id.brademo1_tweetText).setClickable(true);
             helper.getView(R.id.brademo1_tweetText).setLongClickable(false);
     3.DaojishiUtil:非常好用倒計時的工具類
     4.NoDoubleClickListener:防止double click
     5.SimpleTagImageView:給ImageView打標籤

     7.StartHiddenManager:點A B兩點跳轉邏輯方法

zuni:非常好的阻尼效果

下面是部分效果圖:更多用法請移步:https://blog.51cto.com/liangxiao

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

樑肖51CTO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章