Android 是目前最流行的移動操作系統之一。 隨着新版本的不斷髮布, Android的功能也日益強大, 涌現了很多流行的應用程序, 也催生了一大批的優秀的組件。
本文試圖將目前流行的組件收集起來以供參考, 如果你發現本文還沒有列出的組件,歡迎在評論中貼出來,我會定期的更新本文。
部分圖片需要翻牆才能顯示
-
很好的中文教程
Google Android官方培訓課程中文版 -
awesome-android, android列表。
-
另,github上的一個項目, 收集了好多的Android開源項目。
android-open-project。 -
另,
AndroidElementals
巴塞羅那的一位工程師整理的Android開源項目列表。 -
另, 一個分類特別好的網站
http://android-arsenal.com/free
以下是我收集和精選的Android開源項目。
工具和教程
-
MaterialDesigh資源整理
light_sky@weibo 整理的MaterialDesigh資源,很多資料。 -
androidkickstartr
填寫一個表單, 選擇你要集成的一些Android開源項目,自動給你生成一個應用程序。 還有比這更貼心的服務嗎?
-
Android Button Maker
Android Button Maker是一個可以在線生成按鈕代碼的工具。Android API提供了XML文件定義的幾何形狀的Drawable資源,包括顏色、邊界和梯度。這些按鈕的生成是基於drawable形態的XML代碼,這樣可以比普通的png按鈕加載得更快。你可以在設置面板上自定義按鈕的屬性,然後獲取其源碼。 -
AndroidAssetStudio
Asset Studio可以讓你快速簡單地從已經存在的圖片、剪貼畫或者文本資源中生成圖標。這些圖標可以應用在
Launcher icons Action bar and tab icons
Notification icons Navigation drawer indicator
** Generic icons -
Actionbar Style Generator
這個ActionBar風格生成器可以讓你輕鬆地創建一個簡潔、有吸引力且無漏洞的自定義actionbar。它會生成所有9種必須的patch assets以及相關XML的drawables和styles文件,這些文件可以直接複製到你的項目中。 -
Android Holo
這個Android Holo顏色生成器可以讓你簡單地爲你的應用創建Android組件,如editext或者spinner,並且可以使用自己的顏色。它會生成所有9種必須的patch assets以及相關XML的drawables和styles文件,可以直接複製這些文件到你的項目中。 -
Android Layout Binder
Android Layout Binder會將你安卓的XML佈局文件轉換成一系列的聲明,綁定保存所有的人工輸入。鍵入一個前綴,選擇XML文件上要粘貼的範圍,然後點擊生成。選擇“verbose”來找出所有被跳過的區域的原因。 -
APKAnalyser
這是一個靜態、虛擬分析工具,你可以全面地概覽應用的架構。可以用它來檢查API參考文檔,查看應用依賴還有反編譯字節碼。APKAnalyser是一個完整的開源工具鏈,它支持修改應用的二進制代碼,你可以重新打包、安裝、運行以及驗證logcat的結果。
-
coursera-android
一個android教程類項目,8周完成結業。基本上囊括了android所有知識點,如果你想把android方面的知識系統地整理一遍,可以果斷也把它fork下來,一個一個開始練習,總共有100多個例子。
教程在這裏。 -
maven-android-sdk-deployer
一個使用Maven Android Plugin插件安裝Android SDK組件的工具 -
50個Android開發技巧
Vector_Yi整理的Android開發技巧 -
android-best-practices
android編程最佳實踐
UI組件
-
Material Design資源
一大波優質的Material Design資源免費下載 -
Material UI
Material UI 是一個 CSS 框架和一組實現谷歌 Material Design 設計規範的 React 組件。可以用在html5方式的APP中 -
android-ui
Android UI庫, Android L風格。
-
Android-LollipopShowcase
Android L設計效果的演示, 演示而已,值得學習。
-
Android-Material-Example
另一個Android L學習的例子。
-
android-UniversalMusicPlayer
google官方跨設備的例子,一款播放器,UI和交互都超級棒,而且同時支持手機、平板和Android Wear。
-
Material-Animations
Material動畫例子
-
Euclid
一個非常精美的用戶信息頁面的實現,動效很細膩。
-
Material Palette調色板
Material Design出來一段時間了,身爲Android開發人員想要自己適配一套Material Design,但是又苦於缺少設計方面的知識與理解,怎麼辦呢?這個網站就可以自動幫你生成調色板。
-
android-floating-action-button
Android L風格的浮動按鈕, 紅色小鮮肉。
-
ActionBarSherlock
一個功能強大的ActionBar組件(不僅僅是ActionBar)。 Android 4.0+上使用native action bar, 低版本的Android模擬實現。強大到無語了,必須關注的一個開源組件。
-
SlidingMenu
一款優秀的側滑菜單組件。 Google+, YouTube和Facebook在它們的應用中採用的側滑菜單流行開來, 國內也有很多的應用如網易新聞等也採用了這種菜單方式。 側滑菜單組件很好幾種, 尤以此款最爲好用。 看看官方網站上的知名用戶就知道了。 -
Android-Iconics
這是一個可以讓你在你的項目中使用幾乎任何字體圖標的庫。默認包含 FontAwesome 和 Material Design Icons 還包含 Meteocons 插件。你甚至可以添加任何你自定義的字體圖標(typeface)。
-
richeditor-android
超酷的富文本編輯器
-
superCleanMaster
一鍵清理 開源版,包括內存加速,緩存清理,自啓管理,軟件管理等。
-
PullDownListView
仿微信首頁的下拉效果,非常細膩。
-
Taurus
下拉刷新的動畫好贊。
-
SimpleTagImageView
一個可以在圖片四個角顯示一個小標籤的ImageView,並且可以控制標籤的寬度和背景顏色。
-
GridPasswordView
仿微信/支付寶的密碼輸入框效果。
-
DevelopQuickSetting
一個快速開啓關閉開發者設置的工具,提供了app界面和桌面widget,能快速打開關閉overdraw,layout border,gpu rendering,adb wifi,不保存activity實例等功能。
需要root權限 -
Android-Universal-Image-Loader
強大靈活的加載、緩存、顯示圖片的庫。
-
Android-ViewPagerIndicator
滑動頁面幾乎成了現在國內的應用的標配了,尤其在你第一次安裝/啓動應用時, 總會有幾張介紹頁面讓你滑動顯示。 用它吧,不會辜負你的。
-
Android-PullToRefresh
你不陌生, 在列表或者視圖的頂部或者底部拖動可以刷新數據和頁面。可以和ListView、ExpandableListView、GridView、WebView、ScrollView、HorizontalScrollView、ViewPager配合使用。
-
picasso
強大的圖像下載和緩存庫。
-
Android-Bootstrap
bootstrap風格的按鈕。 使用Font Awesome圖標字體。
-
facebook-android-sdk
Facebook提供的SDK, 可以在應用中集成Facebook. -
android-bootstrap
不同於上面的Android-Bootstrap。 此項目是一個Android應用程序的模版, 相當於一個腳手架的功能。
-
AndroidStaggeredGrid
想做瀑布流式的應用嗎?用它吧。
-
cardslib
一種卡片式的佈局控件。 記得以前的有道詞典的默認頁就是這種佈局。
-
android-PullRefreshLayout
下拉刷新佈局, 比SwipeRefreshLayout更漂亮。
-
WilliamChart
圖表組件。
-
LDrawer
使用material design動畫的drawer圖標
-
PhotoView
ImageView擴展, 支持放縮和手勢。
-
ListViewAnimations
爲ListView增加動畫, 還提供滑動刪除選定項的功能。 類似Android的郵件的刪除操作。 -
hellocharts-android
一個圖表庫, 帶少量動畫。
-
Android-Week-View
日曆組件。
-
android-typeface-helper
typeface效果
-
ion
又一個圖像異步加載庫。至少推薦三個了, 輪子不少。關注度很高 -
AndroidViewHover
一種優雅的顯示上下文和菜單的庫
-
MaterialSettings
可以讓你輕鬆創建Material Design風格的Settings Activity的庫。
-
android-menudrawer
又一個滑動菜單的組件。
-
android-swipelistview
又一個ListView擴展, 支持滑動操作。
-
android-pulltorefresh
又一個拖動刷新的組件。到此爲止說了好多又了。 因爲有些功能確實有多個不錯的實現。
-
android-undergarment
抽屜組件。
集成這個組件非常簡單 ,只要在activity的oncreate中加入mDrawerGarment = new DrawerGarment(this, R.layout.dashboard);
-
Crouton
Toast之外的另以選擇。 -
StickyListHeaders
header可以固定的組件。 看下圖。
-
drag-sort-listview
在ListItem拖動重排序。 開發者已經放棄維護了但是關注者依然不少。 -
FreeFlow
comcast出品的一個佈局引擎。 FreeFlow讓你很容易的定製佈局和漂亮的轉換動畫。
看到comcast好激動, 因爲他是筆者公司最大的客戶。
-
FadingActionBar
摺疊風格的ActionBar. 說起ActionBar, 第一選擇不是ActionBarSherlock麼?
-
android-viewflow
可以水平滾動的視圖。 -
android-flip
可以實現類似Flipboard一樣的翻頁效果。
-
android-times-square
square出品的日期選擇組件。
-
circular-progress-button
環形進度條按鈕。 -
android-viewbadger
爲視圖增加badger。可以做的更好看點。 -
AndroidViewAnimations
漂亮的視圖動畫。 -
JazzyViewPager
爲ViewPager增加一條切換動畫 -
SpringIndicator
模仿Morning Routine的引導頁效果.
-
Android-SlideExpandableListView
有一個可以滑動的ExpandableListView組件。
-
DragLayout
使用support.v4包下的ViewDragHelper實現QQ5.0側滑
-
pinned-section-listview
GroupName滑動到頂端時會固定不動直到另外一個GroupName到達頂端的ExpandListView
-
android-process-button
很酷的一個組件,可以在按鈕下部顯示漂亮的進度條,就像GMAIL一樣。
-
android-betterpickers
更好的時間、日期庫。
-
StaggeredGridView
瀑布流。類似Pinterest。
-
ProgressWheel
環形進度條。
-
Calligraphy
在Android中更容易的使用字體。 -
android-satellite-menu
類似Path一樣的菜單。
-
KugouLayout
一個模仿酷狗播放器滑動返回的layout,可以讓你的app有更豐富便捷的手勢操作,支持activity滑動返回和普通layout的滑動顯示/隱藏兩種模式。
-
labelview
貼紙效果。
-
AndroidTagGroup
一個漂亮的標籤組控件。
-
Android-Ultra-Photo-Selector
一個圖片選擇器控件,支持選擇多張圖片、瀏覽設備上所有包含圖片的文件夾、預覽選擇的圖片並且支持縮放。
-
fab
一個支持很多自定義屬性的Floating Action Button控件。
-
dashed-circular-progress
圓形軌跡進度條控件。
-
AutoCompleteBubbleText
自動選擇,可用於tag選擇
-
android-actionbarstylegenerator
action bar風格在線製作。 -
SuperToasts
擴展的Toast. -
GlassActionBar
毛玻璃效果的ction bar.
-
GraphView
可以產生放縮的線圖和直方圖。
-
StickyGridHeaders
可以固定header和分區的Grid。
-
BlurEffectForAndroidDesign
模糊效果的演示。
-
MaterialDesignLibrary
爲Adnroid 2.2等低版本應用增加Android L 5.0風格的組件。 -
RippleEffect
漣漪效果
-
L-Dialogs
代替Android L的對話框
-
ArcLayout
超酷的弧形佈局
-
PullZoomView
最近國內用的比較多的一個風格。 拖動時頭部縮放。
-
ZhihuPaper
個人開發的知乎日報客戶端。
-
material-ripple
爲view增加的Android L漣漪效果的包裝類
-
L-Navigation-Drawer
替換Android L的導航抽屜類。 也就是左邊拖動菜單。
-
AndroidSwipeLayout
功能強大的swipe佈局。
-
material-menu
模仿Android L的drawer, back, dismiss and check icons動畫
-
FloatingActionButton
模仿Android L的Floating Action Button (FAB), 可以用在Jellybean 和 KitKat中 -
android-sliding-layer-lib
滑動層框架, 支持左右滑動,全屏。 -
AndroidFloatLabel
浮動標籤, 按需顯示。 -
MaterialWidget
Android風格的組件, 可以用在Android 4.4 ~ 4.0
-
MultiImageSelector
國人開發的一個多圖像選擇組件
-
ArcMenu
又一個類似Path的環形菜單。
-
cropper
圖像剪切和旋轉。
-
chromeview
Android webview組件的實現, 但是基於最新的Chromium 代碼。 -
StandOut
很容易的創建彈出窗口。
-
android-iconify
集成FontAwesome 。
-
android-gif-drawable
看名字就知道了。 -
NumberProgressBar
漂亮的帶數字的進度條。
-
Android-SwipeToDismiss
演示ListView滑動刪除。 -
Shimmer-android
閃爍發光的文本框。
-
HoloColorPicker
Holo風格的顏色選擇器。
-
android-crop
圖像裁剪 -
CircleProgress
圓圈進度條
-
MultiChoiceAdapter
ListView 支持多選。
-
-
MPAndroidChart
非常不錯的圖表工具。
-
Android-Action-Bar-Icons
圖標資源。 -
AndroidCharts
圖表控件
-
Android-Charts
國人實現的圖表控件
-
desCharts
圖表控件
-
PinnedHeaderExpandableListView
國人實現的一個ExpandableListView,頭部可以固定, 並且可以伸縮。
-
XCL-Charts
國人出品, 圖表控件,種類很多。 -
PullToZoomInListView
滑動ListView時使其HeaderView跟隨滑動縮放.
-
NotBoringActionBar
拖動時頂部可以收縮。
-
transparent-over-animtabsview
模仿網易雲音樂
-
LetterImageView
類似Android的郵件應用, 用首字母作爲圖片。
-
chromium-webview-samples
webview例子。
https://github.com/GoogleChrome/chromium-webview-samples
https://developer.chrome.com/multidevice/webview/gettingstarted
http://developer.android.com/guide/webapps/webview.html
http://developer.android.com/reference/android/webkit/WebView.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/1010/1569.html
類庫
-
roboguice
google guice框架在Android平臺上的實現。 什麼事guice? 它是一個類似Spring的IOC框架。 什麼是IOC? 算了,你還是先學習Java的基礎知識吧。
-
android-async-http
基於Apache http client實現的支持異步、回調的android http client組件。 -
androidannotations
將註解引入到Android開發中,極大的減少代碼裏,可以更好的維護代碼。 -
retrofit
類型安全的Restful client庫。 -
dagger
一個快速的依賴注入庫。這個square公司出了不少的組件庫。 square公司就是那個移動支付的創業公司。 -
okhttp
還是square出品, HTTP+SPDY 客戶端。 -
EventBus
一個專爲Android優化的發佈訂閱框架, event bus模式。 可以在Activity, Fragment 和後臺線程之間交流數據。 -
butterknife
專爲視圖注入庫。 -
robospice
一個模塊化的Android類庫, 可以更容易的編寫異步的長時間運行的任務。 -
**
一個加強的基於Guava event bus庫。 square出品。 -
AndroidAsync
又是異步處理庫, 支持socket,http (client+server),websocket 和socket.io ,基於nio。 -
ActiveAndroid
active record風格的操作Android SQLite 數據庫。 -
androidquery
JQuery很熟悉吧。 這是Android版的JQuery。 -
greenDAO
一個輕量級的快速的ORM方案。 操作SQLite 數據庫。 -
Bolts-Android
一套底層庫。 -
scaloid
極大的減少Android得代碼,更易維護。 -
conceal
Facebook的快速加密類。 -
android-common
國人實現的一個工具包。 -
xUtils
國人實現的一個工具包。 -
android-priority-jobqueue
Path出品的job queue。 -
android-sqlite-asset-helper
數據庫輔助類。 包括數據庫的創建與升級。 -
tape
一組queue類。 square出品。 -
spring-android
不多說了。 -
joda-time-android
爲Android做了優化 -
spydroid-ipcamera
將你的收集作爲監控設備。 -
ACRA
ACRA是一個可以讓安卓應用自動發出GoogleDoc格式崩潰報告的函數庫。安卓開發者可以通過ACRA獲取應用崩潰或者錯誤行爲的數據。如果有一個崩潰發生,你的應用不會越過已有的系統崩潰提醒或者報告功能來添加用戶提醒。如果使用Toast、狀態提醒條或者直接對話框模式,這個“強制關閉”的對話框不會再顯示,就算設備上原生系統的提醒功能開啓也不能發送一個另外的報告。 -
jpinyin
JPinyin是一個漢字轉拼音的Java開源類庫,在PinYin4j的功能基礎上做了一些改進。
遊戲引擎
-
libgdx
libGDX是基於OpenGL的跨平臺的遊戲開發框架。
-
AndEngine
知名的Android 2D OpenGL 遊戲引擎。 -
ogengine
國人開發的國際著名開源引擎AndEngine的一個分支 (往上看)。遵循LGPL開源協議使用OpenGL ES進行圖形繪製。同時集成了Box2D物理引擎,因此可以實現複雜的物理效果。 -
citrus
快速且輕量級的2D & 3D遊戲引擎。
-
Cocos2d-Android
知名的遊戲引擎 -
gameclosure
JavaScript 遊戲引擎 -
遊戲引擎列表
維基百科上的各種遊戲引擎, 各種平臺的引擎列表, 全。
Android HTML5應用
-
PhoneCap
早在2011年10月,Adobe收購了Nitobi Software和它的PhoneGap產品,然後宣佈這個移動開發框架將會繼續開源,並把它提交到Apache Incubator,以便完全接受ASF的管治。 -
Cordova
Cordova是貢獻給Apache後的開源項目,是從PhoneGap中抽出的核心代碼,是驅動PhoneGap的核心引擎。你可以把他想象成類似於Webkit和Google Chrome的關係。
Adobe將會繼續以Cordova加上PhoneGap Build和Adobe Shadow的組合提供PhoneGap。 -
awesome-cordova
Cordova插件列表 -
awesome-cordova
Cordova插件列表 -
ionic
基於Cordova的快速創建平臺。 -
mui
國內廠商dcloud開源的一個高性能的html5框架。性能和體驗的差距,一直是mobile app開發者放棄HTML5的首要原因。 瀏覽器天生的切頁白屏、不忍直視的轉頁動畫、浮動元素的抖動、無法流暢下拉刷新等問題,這些都讓HTML5開發者倍感挫敗,尤其拿到Android低端機運行,摔手機的心都有; 另一方面,瀏覽器默認控件樣式又少又醜,製作一個漂亮的控件非常麻煩,也有一些製作簡單的ui框架但性能低下。
mui框架有效的解決了這些問題,這是一個可以方便開發出高性能App的框架,也是目前最接近原生App效果的框架。 -
開源的Javascript遊戲引擎
[Pixi.js](https://github.com/GoodBoyDigital/pixi.js)phaser
[MelonJS](https://github.com/melonjs/melonJS)kiwi.js
[Crafty](https://github.com/craftyjs/Crafty)PhysicsJS
[cutjs](https://github.com/piqnt/cutjs) -
FlyRefresh
創意Replace的Android實現,很cool.
-
fab-toolbar
Material Design風格的FAB工具欄效果
-
MaterialViewPager
ViewPager, Material Design風格
-
PolygonImageView
多邊形ImageView
-
FlippableStackView
堆棧效果
-
HorizontalStackView
另一個橫向堆棧效果
-
GiftCard-Android
禮品卡效果
-
ElasticDownload
酷炫進度條
-
cheesesquare
Android 設計庫的演示 -
AnimateCheckBox
酷炫CheckBox
-
DatePicker
中國人開發的日期選擇器
-