BaseLibrary
本庫旨在開發(fā)項(xiàng)目時(shí)能快速搭建框架撇贺,提供較為常用的開發(fā)工具。建議下載作為依賴庫冰抢,
便于修改松嘶。部分功能會(huì)僅在demo中有體現(xiàn),請?jiān)敿?xì)看完demo挎扰。
github:https://github.com/MirkoWu/BaseLibrary
下面介紹本庫的主要內(nèi)容
1. MVP/MVVM模式
Model :使用 Retrofit + OkHttp + RxJava 框架
View :Activity/Fragment
Presenter/ViewModel :執(zhí)行代理
使用方法:
1.繼承BaseActivity/BaseFragment/BaseDialogFragment
2.創(chuàng)建Presenter(可選)
Base 大致功能如下:
1.切換語言
2.切換日夜模式
3.檢測橫豎屏
4.顯示/隱藏Loading彈框
5.ButterKnife 綁定數(shù)據(jù)
6.控制RxJava生命周期翠订,防止內(nèi)存泄漏
7.MVP/MVVM模式
2. Refresh + RecyclerView + Adapter
刷新推薦使用:SmartRefreshLayout
Adapter推薦使用: BaseRecyclerViewAdapterHelper,
可直接繼承本項(xiàng)目的BaseRVAdapter,更方便 。用到選擇邏輯時(shí)可繼承 SelectedAdapter 遵倦。
3. 各基礎(chǔ)常用的Dialog
BottomListDialog 類似BottomSheetDialog,從底部彈窗的選擇框
LoadingDialog 加載框
PromptDialog/PromptDialogFragment 提示框
4. 各基礎(chǔ)常用的自定義View
NoScrollViewPager 可不能滑動(dòng)的ViewPager
SwipeItemLayout 側(cè)滑多選項(xiàng),類似QQ
ClickImageView 點(diǎn)擊可變色陰影的ImageView
TimerTextView 獲取驗(yàn)證碼 倒計(jì)時(shí)View 語言需自己處理
SquareFrameLayout/SquareLinearLayout 可用ConstraintLayout代替
5. 網(wǎng)絡(luò)加載 Retrofit + OkHttp + RxJava + Lifecycle
網(wǎng)絡(luò)加載使用 Retrofit + OkHttp + RxJava 配套方案尽超,可以控制加載框,
RxJava生命周期綁定,攔截器加密,數(shù)據(jù)泛型解析梧躺。
6. Socket通信工具
RxSocketManager 可創(chuàng)建TCP/UDP連接
7. 其他工具(詳情見utils包下文件)
1.AppUtil App信息似谁、軟鍵盤等。
2.SPUtil BaseSPManager SharedPreferences工具類和管理類
3.BitmapUtil
4.ContextUtil 獲取文字掠哥,顏色
5.DisplayUtil ScreenUtil 屏幕像素相關(guān)
6.EmptyUtil 空字符串 /數(shù)組判斷工具
7.ToastUtil 吐司工具
8.RxPermissionsUtil 權(quán)限申請
9.RegularUtil 正則工具
10.AESUtil巩踏、RSAUtil、MD5Util 常用加解密工具
等...
8. 藍(lán)牙開發(fā)
提供二種管理方式
1.跨界面或者全局管理藍(lán)牙業(yè)務(wù)的BLE連接:
BLEManager
BLEManagerActivity 搜索并連接藍(lán)牙Demo
(記得在合適的時(shí)機(jī)調(diào)用close方法來關(guān)閉藍(lán)牙服務(wù))
2.和Activity綁定業(yè)務(wù)的BLE連接:
BLEService 藍(lán)牙服務(wù)
BLEClient 藍(lán)牙工具
BLESearchActivity 搜索并連接藍(lán)牙Demo
9. 屏幕適配方案(已在base庫中集成)
原理同今日頭條適配法
使用庫AndroidAutoSize
使用方法:
<manifest>
<application>
<meta-data
android:name="design_width_in_dp"
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="640"/>
</application>
</manifest>
優(yōu)點(diǎn):無入侵续搀,隨用隨關(guān)塞琼。只要布局按照設(shè)計(jì)稿的大小來寫(dp模式,用的單位是dp,sp )即可。
Demo下載
關(guān)于模板
項(xiàng)目 localTemplates 目錄下的二個(gè)模板請Copy到 AndroidStudio安裝目錄下的模板路徑:
某盤:\AndroidStudio安裝路徑\plugins\android\lib\templates\activities 禁舷。
例:我的studio安裝路徑在C:\AndroidStudio, 找到該目錄下的
\plugins\android\lib\templates\activities ,copy進(jìn)去 重啟sudio 即可生效
Log更新日志
*2019-3-8
優(yōu)化RxSocketManager
*2019-3-5
增加藍(lán)牙BLE通信
*2019-2-22
刪除了ContextUtil工具類彪杉,該類導(dǎo)致在日夜模式獲取顏色時(shí)毅往,不生效
增加了android P http明文傳輸被限制的視頻
優(yōu)化Socket工具類
修復(fù)了導(dǎo)致PromptDialog 異常的相關(guān)API
增加了包名修改注意事項(xiàng)文檔
*2019-1-11
增加了閃屏頁,引導(dǎo)頁
增加了WebView通用demo頁面
修改了demo的包名在讶,避免重命名項(xiàng)目時(shí)將baselibrary也修改了
優(yōu)化了Socket工具煞抬,是的udp能自動(dòng)判斷是單播還是組播
修復(fù)了MD5Util工具類中 ToMD5NOKey() 方法導(dǎo)致的bug。
*2018-12-9
根據(jù)實(shí)際情況簡化MVP模式构哺,剔除繁瑣的Contact。
更新適配方案 AndroidAutoSize
優(yōu)化 NetworkTransformer
更新工具庫
*2018-8-30
調(diào)整框架結(jié)構(gòu) 抽離BaseDelegate 增加 DataBinding 用法即示例
增加AES和RSA加解密算法工具
*2018-8-17
更新SPUtil get()方法 defValue 默認(rèn)值不能為空
更新RefreshFragment/RefreshActivity 刷新請求失敗時(shí)的UI狀態(tài)自動(dòng)化
*2018-8-16
更新BaseSPManager 增加 判斷是否新版本方法
*2018-8-4
重要更新: 添加屏幕適配方案, 原理同今日頭條適配法
修改了ScreenUtil战坤、 BaseActivity曙强、BaseApplication文件
使用詳情請看 文檔第9條
*2018-8-1
修復(fù)NetworkUtil 中判斷是否為Wifi連接Bug
*2018-7-30
添加 TimerTextView :驗(yàn)證碼倒計(jì)時(shí)View
*2018-7-26
添加CompressUtil工具類:魯班壓縮方案
ScreenUtil 添加方法 getScreenRealWidth()
*2018-7-23
添加說明文檔
添加模板文件