By LongLuo
在PC上,絕大部分軟件都是Windows應(yīng)用且閉源的,Linux系統(tǒng)只占了很小的份額,只有專業(yè)人士才會(huì)使用。隨著移動(dòng)互聯(lián)網(wǎng)的到來(lái),在智能手機(jī)系統(tǒng)中,Android由于開(kāi)源免費(fèi)的特性,已經(jīng)占據(jù)了主要份額。當(dāng)然iOS App由于閉源,且Apple軟硬件一體,管控嚴(yán)格,體驗(yàn)更好,比如安全、動(dòng)畫流程、不卡頓等。
對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),最佳的學(xué)習(xí)方式莫過(guò)于開(kāi)源項(xiàng)目了,我們可以學(xué)習(xí)到App的功能是如何實(shí)現(xiàn)的,提高我們自身的開(kāi)發(fā)能力。我收集了一些最好的開(kāi)源Android App項(xiàng)目,這些Apps可以作為很好的示例,幫助程序員們提高其Android開(kāi)發(fā)技能。
下面就開(kāi)始學(xué)習(xí)吧!
UI界面
FluentUI Android
微軟開(kāi)發(fā)的UI框架,用于在Android上Office App中實(shí)現(xiàn)統(tǒng)一的用戶界面,從中可以學(xué)習(xí)如何構(gòu)建UI部件及界面。
QMUI Android
QMUI Android是騰訊開(kāi)發(fā)的一個(gè)項(xiàng)目,設(shè)計(jì)目的是用于輔助快速搭建一個(gè)具備基本設(shè)計(jì)還原效果的Android項(xiàng)目,同時(shí)利用自身提供的豐富控件及兼容處理,讓開(kāi)發(fā)者能專注于業(yè)務(wù)需求而無(wú)需耗費(fèi)精力在基礎(chǔ)代碼的設(shè)計(jì)上。不管是新項(xiàng)目的創(chuàng)建,或是已有項(xiàng)目的維護(hù),均可使開(kāi)發(fā)效率和項(xiàng)目質(zhì)量得到大幅度提升。
官網(wǎng):http://qmuiteam.com/android
相機(jī)
Open Camera
一個(gè)全功能開(kāi)源Android相機(jī)App,包括自動(dòng)穩(wěn)定、遠(yuǎn)程拍照等,如果想開(kāi)發(fā)一款相機(jī)App,請(qǐng)學(xué)習(xí)這個(gè)項(xiàng)目!
多媒體播放器
TimberX Music Player
一個(gè)全功能Android音樂(lè)播放器,遵循Material Design風(fēng)格的用戶界面,同時(shí)應(yīng)用了最新的工具,包括Kotlin、組件、數(shù)據(jù)綁定等。
支持跨平臺(tái),可在手機(jī)、Android Wear、Android Auto、Chromecast和其他投射設(shè)備甚至谷歌助手上運(yùn)行,如果你想編寫一個(gè)音樂(lè)播放器以及適配各種設(shè)備,那這個(gè)App是最好不過(guò)的了!
官網(wǎng):https://namand.in/
Sound Recorder
一個(gè)Material Design風(fēng)格的簡(jiǎn)易開(kāi)源錄音機(jī)App,可以學(xué)習(xí)到如何在Android中集成錄音和操作功能。
LeafPic
一個(gè)全功能相冊(cè)App,如果想了解如何實(shí)現(xiàn)一個(gè)相冊(cè),請(qǐng)從這個(gè)開(kāi)始!
AntennaPod
一個(gè)播客App,你可以學(xué)習(xí)到如何開(kāi)發(fā)一個(gè)播客App。
官網(wǎng):https://www.antennapod.org/
聊天
Telegram
Telegram是最常用的加密即時(shí)通訊App之一,適用于Android和iOS。如果想了解如何實(shí)現(xiàn)一個(gè)即時(shí)通信App,可以認(rèn)真學(xué)習(xí)其源碼!
郵件客戶端
K-9 Mail App
一個(gè)全功能電子郵件客戶端,支持多帳戶、多文件夾同步、標(biāo)記、歸檔、BCC 自我、簽名等等。
如果想了解電子郵件客戶端的工作原理,開(kāi)始動(dòng)手寫一個(gè)郵件客戶端就從吃透這個(gè)項(xiàng)目源碼開(kāi)始吧!
官網(wǎng)地址:https://k9mail.app/
工具類
LawnchairLauncher
開(kāi)源Launcher App, 基于Launcher3開(kāi)發(fā),移植了Pixel Launcher功能和豐富的自定義選項(xiàng),如果你想開(kāi)發(fā)一個(gè)Launcher App,學(xué)習(xí)這個(gè)是最好不過(guò)的了!
官網(wǎng):https://lawnchair.app/
AmazeFileManager
一個(gè)輕量級(jí)的文件管理器App,遵循了Material Design風(fēng)格和指南??梢詮倪@個(gè)App中學(xué)到很多東西,包括全功能文件管理及加解密文件。
官網(wǎng):https://teamamaze.xyz/
Minimal-Todo
一個(gè)Material風(fēng)格的Todo App。
Omni-Notes
一個(gè)輕量級(jí)筆記App,實(shí)現(xiàn)了存檔、垃圾箱、刪除、插入圖像等功能。
官網(wǎng):https://omninotes.app/
Keepass2Android
一個(gè)密碼管理App,可以在將存儲(chǔ)、檢索密碼和其他敏感信息在一個(gè)"database"的文件中。這個(gè)database使用主密碼進(jìn)行保護(hù)。主密碼通常是一個(gè)強(qiáng)密碼,需要提高安全性的話可以增加因子。密碼數(shù)據(jù)庫(kù)文件可以跨設(shè)備同步。如果你想開(kāi)發(fā)一個(gè)密碼管理App,學(xué)習(xí)這個(gè)App最好不過(guò)了!
ML Manager
App管理器,可以實(shí)現(xiàn)提取已安裝App和系統(tǒng)App并在本地保存為APK。
官網(wǎng):https://javiersantos.github.io/mlmanager
開(kāi)發(fā)工具
DoraemonKit
DoKit是一個(gè)功能平臺(tái),能夠讓每一個(gè)App快速接入一些常用的或者你沒(méi)有實(shí)現(xiàn)的一些輔助開(kāi)發(fā)工具、測(cè)試效率工具、視覺(jué)輔助工具,而且能夠完美在Doraemon面板中接入你已經(jīng)實(shí)現(xiàn)的與業(yè)務(wù)緊密耦合的一些非通有的輔助工具,并搭配我們的dokit平臺(tái),讓功能得到延伸,接入方便,便于擴(kuò)展。
簡(jiǎn)單總結(jié):
- Kit能夠快速讓你的業(yè)務(wù)測(cè)試代碼能夠在這里統(tǒng)一管理,統(tǒng)一收口;
- DoKit內(nèi)置很多常用的工具,避免重復(fù)實(shí)現(xiàn),一次接入,你將會(huì)擁有強(qiáng)大的工具集合;
- 搭配dokit平臺(tái),借助接口Mock、健康體檢、文件同步助手讓你方便和他人協(xié)同,極大的提升研發(fā)過(guò)程中的效率。
內(nèi)存檢測(cè)
Leak Canary
A memory leak detection library for Android.
卡頓檢測(cè)
AndroidPerformanceMonitor
AndroidPerformanceMonitor的前身是BlockCanary,是一個(gè)Android平臺(tái)的一個(gè)非侵入式的性能監(jiān)控組件,應(yīng)用只需要實(shí)現(xiàn)一個(gè)抽象類,提供一些該組件需要的上下文環(huán)境,就可以在平時(shí)使用應(yīng)用的時(shí)候檢測(cè)主線程上的各種卡慢問(wèn)題,并通過(guò)組件提供的各種信息分析出原因并進(jìn)行修復(fù)。
開(kāi)發(fā)框架
MVVMHabit
MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架為基礎(chǔ),整合Okhttp+RxJava+Retrofit+Glide等流行模塊,加上各種原生控件自定義的BindingAdapter,讓事件與數(shù)據(jù)源完美綁定的一款容易上癮的實(shí)用性MVVM快速開(kāi)發(fā)框架。
ZBLibrary-Android
MVP架構(gòu),提供一套開(kāi)發(fā)標(biāo)準(zhǔn)(View, Data, Event)以及模板和工具類并規(guī)范代碼。封裝層級(jí)少,簡(jiǎn)單高效兼容性好。
OKHttp網(wǎng)絡(luò)請(qǐng)求、Glide圖片加載、ZXing二維碼、沉浸狀態(tài)欄、下載安裝、自動(dòng)緩存以及各種Base、Demo、UI、Util 直接用。
FastDev4Android
Android開(kāi)發(fā)框架,預(yù)先集成工具包,采用MVP開(kāi)發(fā)模式,EventBus數(shù)據(jù)分發(fā),沉浸式狀態(tài)欄,ORM,網(wǎng)絡(luò)請(qǐng)求(HTTPClint、Volley、OkHttps),數(shù)據(jù)解析,依賴注入(AndroidAnnotations),xutils,圖片異步加載,二維碼掃描等。
AndroidUtilCode開(kāi)發(fā)代碼庫(kù)
一個(gè)功能強(qiáng)大且易于使用的Android代碼庫(kù),封裝了Android開(kāi)發(fā)中常用的功能,有完整的demo和單元測(cè)試。通過(guò)使用它封裝的API,可以大大提高開(kāi)發(fā)效率。該程序主要由兩個(gè)模塊組成,一個(gè)是開(kāi)發(fā)中常用的utilcode,另一個(gè)是開(kāi)發(fā)中很少用到的subutil,但是 utils 可以有利于簡(jiǎn)化主模塊
插件
DRouter
DRouter是滴滴乘客端自研的一套Android路由框架,基于平臺(tái)化解耦的思想,為組件間通信服務(wù)。該項(xiàng)目以功能全面、易用為原則,支持各種路由場(chǎng)景,在頁(yè)面路由、服務(wù)獲取和過(guò)濾、跨進(jìn)程及應(yīng)用、VirtualApk插件支持等方面都能提供多樣化的服務(wù)。目前已在滴滴乘客端、順風(fēng)車、單車、國(guó)際化、滴滴定制車等十多個(gè)滴滴的app內(nèi)使用,得到各種場(chǎng)景的驗(yàn)證。