AcgclubACG 聚合類(lèi) App
宅社 AcgClub 是一款純粹的 ACG 聚合類(lèi) App。作者出于愛(ài)好與學(xué)習(xí)的目的做出了這款 MD 風(fēng)格的應(yīng)用,旨意通過(guò)涵蓋Android 端的一些熱門(mén)技術(shù)框架來(lái)打造一個(gè)面向市場(chǎng)級(jí)別的產(chǎn)品。
通過(guò)本項(xiàng)目,你可以了解到以下技術(shù):
- Material Design
- MVP
- 組件化
- Kotlin
- RxJava2
- Retrofit
- Dagger2
- Realm
- Glide
- Arouter
- Jsoup
- Gradle 配置
- 熱更新
- 混淆、多渠道包
項(xiàng)目相關(guān)
項(xiàng)目環(huán)境
- Android Studio 4.1.3
- Gradle 6.5
- kotlin 1.4.21
- compileVersion 28
項(xiàng)目結(jié)構(gòu)
AcgClub
- app 宿主app
- common 基礎(chǔ)庫(kù)
- common-res 公用資源
- component-acgcomic 漫畫(huà)組件
- src/main
- runalone 組件獨(dú)立運(yùn)行時(shí)生效
- component-acgnews 資訊組件
- component-acgpicture 看圖組件
- component-acgschedule 番劇組件
- router 路由配置及相關(guān)服務(wù)實(shí)現(xiàn)
- third-party-libs 三方庫(kù)存放
- base_component.gradle 組件依賴(lài)配置
- base_component_compiler.gradle java注解處理配置
- base_component_kapt.gradle kotlin注解處理配置
- config.gradle 項(xiàng)目信息配置
新增組件
-
組件名固定前綴為“component-”
-
組件內(nèi)build.gradle需進(jìn)行如下配置:
//必備 apply from:"../base_component.gradle" //使用java apply from:"../base_component_compiler.gradle" //或kotlin apply from:"../base_component_kapt.gradle" //如果用到數(shù)據(jù)庫(kù) apply plugin: 'realm-android'
-
組件內(nèi)res文件將以組件真名為前綴進(jìn)行約束(例如:component-acgnews,一個(gè)布局文件名則需要以此打頭:acgnews_layout.xml)
-
組件獨(dú)立運(yùn)行時(shí)還需要注意提供相關(guān)的application,入口activity,AndroidManifest.xml等
項(xiàng)目配置
config.gradle 中進(jìn)行項(xiàng)目項(xiàng)目的屬性配置,例如:包名、版本號(hào)、編譯版本...
其中:
//在該屬性中填寫(xiě)需要合并到主程序運(yùn)行的組件,沒(méi)有填寫(xiě)的組件將獨(dú)立運(yùn)行
merge = [
"acgnews",
"acgschedule"
//"acgcomic"
]
merge 屬性修改完畢后,需要重新構(gòu)建項(xiàng)目
其他
- 項(xiàng)目中提示缺失DaggerXXX時(shí),通過(guò)完成編譯將有Dagger2自動(dòng)生成
- 在本地的 local.properties 按自己所需進(jìn)行一些三方庫(kù)的key、簽名的配置,不需要的可以自行去掉
#阿里云用戶反饋
fbAppKey=""
fbAppSecret=""
#友盟
umengAppKey=""
#bugly
buglyAppId=""
#簽名信息
storeFile=
storePassword=
keyAlias=
keyPassword=
#友盟分享key
SINA_WEIBO_KEY=""
SINA_WEIBO_SECRET=""
QQ_ZONE_ID=""
QQ_ZONE_KEY=""
WEIXIN_ID=""
WEIXIN_KEY=""
- 為了確保 bugly 熱更新能生效,請(qǐng)每次打出正式包的時(shí)候,確認(rèn) app 目錄下 tinker-support.gradle 文件中的 tinkerId 的唯一性
評(píng)論
圖片
表情
