Android開源庫集錦
一、兼容類庫
- ActionBarSherlock : Action Bar是Android 3.0后才開始支持的,ActionBarSherlock是讓Action Bar功能支持2.X后的所有平臺,而且他會自動的判斷是調用原生Action Bar還是使用擴展ActionBar。在我的小熊詞典里有用到這個庫,而且很多非常知名的App也在使用這個庫。GitHub Official ActionBar科普
- Android-ViewPagerIndicator : 這是與ViewPager兼容的一個分頁指示器庫。分頁指示器(Friends 和 Suggested就是分頁,而下面藍色的小條就是指示器,ViewPagerIndicator支持多種樣式的指示器。):GitHub
- NineOldAndroids : NineOldAndroids 將 Honeycomb (Android 3.0) 的動畫 API 擴展到了Android 1.0以上。這個庫的作者即是ActionBarSherlock的作者,也是Android-ViewPagerIndicator的作者,Jake Wharton, 非常厲害的一個人,Github關注量超過1.6K,如果你也做Android開發或者即將開始學習Android開發,一定要去Follow他,而且留意一下他每次的star和follow信息,經常會有很驚奇的發現。
- HoloEverywhere:在Android 4.0時,Google引入了新的主題風格—Holo,多數廠商都想統一界面設計UI,因此更加具有兼容性的Holo主題庫HoloEveryWhere便成為很多開發者的選擇。在Android的官方Blog中也對HoloEveryWhere這個庫有所推薦,點此查看官方博客對HoloEveryWhere的介紹。HoloEveryWhere的Github。
- Android-Datepicker: 兼容Android 4.0的datepicker至Android 2.2。 GitHub
二、擴展功能庫
- SlidingMenu : SlidingMenu 能非常容易的讓開發者實現程序的抽屜效果,所謂的抽屜效果如下圖所示,通常被用作呼出菜單。而且SlidingMenu能很方便的與ActionBarSherlock融合,在官方GitHub上有關于如何融合的說明。 GitHub
- AppMsg : 優雅的彈出類似Toast的消息提示,支持3種狀態Alert,Confirm以及Info。GitHub
- Drag-Sort-ListView : 很多人都用過在一個ListView中通過拖拽對已有的數據進行排序操作。Drag-Sort-Listview就是實現這一功能的開源庫。GitHub
- Android-Flip : 輕松實現類似FlipBoard的翻頁功能。 GitHub
- Android-PullToRefresh : Android下拉刷新組件。 GitHub 此外,該作者還有另外一個實用度和關注量極高的項目–另一種Android ActionBar的實現:GitHub 另:GitHub上另一個Android-PullToRefresh的實現。GitHub
- ActionBar-PullToRefresh: 基于ActionBar的下拉刷新組件,在下拉的時候會替換掉ActionBar,顯示更新中… GitHub Demo下載
- picasso: 程序中經常面臨加載網絡圖片的情況,成熟做法:異步下載->緩存->顯示,Picasso一行代碼就可這三步輕松完成。GitHub GitHubPage ,GitHub上圖片異步加載緩存類庫很多,你也可嘗試使用Android-Universal-Image-Loader 或者 LazyList 后面將介紹到的afinal(國人項目)也具有此功能。
三、工具類庫:
首先,就我個人開發經驗,總結一下平常用到的一些最常用的功能:
- 下載,比如圖片,文件。
- 將下載的文件進行解壓。
- 請求服務器,比如說上傳登陸信息,更新某些數據,又或者上傳頭像文件。
- 從文件系統中選擇要操作的文件。
- 有時候也需要爬取某些網頁數據。
- 存儲一些配置信息
- 再有一個特殊需求就是關乎Android程序UI設計,圖標是個很麻煩的問題。每次都難以找到合適的Android 設計UI。
隨后,我將很有針對性的推薦一些功能庫,來簡化上面的問題。
- afinal: afinal是一個很方便的工具庫。GitHub 作者博客(注:國人項目喲)
- 一行代碼就可以對數據庫進行增刪改查。
- 完全注解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
- 輕松實現Android上傳文件,POST數據,下載文件(支持斷點續傳,隨時停止下載任務 或者 開始任務)。
- 一行代碼加載網絡圖片。
- android-async-http: Android下的異步HTTP庫。GitHub 文檔 PS:作者的GitHub值得關注。
- 發送異步http請求,并且可在回調函數中處理返回響應Response。
- http請求在thread線程,不會阻塞UI線程。
- 請求使用線程池(ThreadPool)實現,優化了并發的資源使用。
- 支持Multipart 文件上傳。
- 如果Request請求失敗,會自動請求。
- 支持Json解碼。
- 支持存儲Cookies到Preference中。
- 支持gzip處理Request以及Response。
- 整個庫只有19KB。
- async-http-client: Android下的異步 Http 和 WebSocket 庫。 GitHub
- 支持代理設置
- 支持分片兒處理請求返回內容
- 支持WebSocket
- zt-zip: 壓縮和解壓庫。 GitHub
- 壓縮和解壓
- 單獨操作文件壓縮和解壓。
- 替換zip文件中的某個文件
- aFileChooser:文件選擇器,用于選擇需要操作的文件 GitHub
- jsoup: HTML解析,并且能很好理解DOM,CSS,以及JQuery。GitHub 官方 PS:這是java庫。做網頁爬蟲(Crawler,Robot)必備。
- toml:這是個跨語言的配置信息存取方案。GitHub
- Androiton-Action-Bar-Icons:一個針對Android 優化過的ICON圖標集。 GitHub Demo
四、圖標資源:
- http://iconsparadise.com/ 質量一般,但也是一種選擇
- http://iconbench.com/ 在線產生一些小圖標
- http://www.androidicons.com/ 圖標質量很不錯,但是要付費($25刀),如果有想合買的可以聯系我~
- https://code.google.com/p/android-ui-utils/ 用來在線生成符合Android Design風格的設計圖標。 項目地址
五、一些手冊
- Android圖形界面設計手冊,可以用來快速查看圖標的大小、ActionBar的Height等瑣碎的Android Design要求。GitHub
- Android 官方UI設計手冊:下載 另:中文翻譯版本 源地址 (需要梯子) 鏡像1、鏡像2、鏡像3 離線版本打包 項目發起人:SunJW (需要梯子)
七、一些視頻(以下均為Google 2013 I/O大會的現場視頻,視頻較多持續更新中…)
- Android Studio 的新特性官方講解視頻,我在官方技術博客上下載下來,上傳到網盤,希望對大家有幫助。下載地址
- Android引入Gradle的官方講解視頻 下載地址。
- Google 2013 IO大會上抽出40多分鐘時間講解了Android Custom View的底層原理和書寫方法。非常值得一看!下載地址。
- IO大會上還講解了高性能Android RenderScript的原理和使用方法,搞圖形圖像必備良品。下載地址
- 大會上還向開發者講解了如何實現簡潔、快速的網絡請求。包括常用的JSON、AsyncTask,還提出了一種網絡負荷較重情況下的解決方案RequestQueue(請求隊列),提升自己技術必備視頻。下載地址
- Android 藍牙 操作最佳實踐。下載地址
- Android ui 設計官方指南 下載地址
- Android游戲開發 官方講解視頻 下載地址
八、高價值鏈接
- Android官方博客 提供一些跟Android相關的即時咨詢。(需要梯子)
- Android官方技術博客 主要提供一些新工具(如Android Studio),新技術(如每次更新帶來新特性)的演示和講解。(需要梯子)
- AndroidViews Android View組件收集站點。
- 那兩年煉就的Android內功修養 (這是一篇Android入門到提高的文章,內容很全面,而且由淺入深,強烈推薦,來自老羅的Android之旅)
九、集成其他開發特性(給懶人…)
- ORM: Object-relationship mapping,如果你不知道什么是ORM設計,Google。 目前Android上主要有三個ORM開源庫。greenDAO、OrmLite、AndrORM。排序基本代表性能。greenDao和Ormlite性能測試 Ormlite和Androrm性能對比,主要是原理實現決定的性能差異(GreenDao采用生成數據表類文件,其他的則采用了反射…)。如果對數據庫性能要求很高,那么采用greenDao,如果想圖方便采用OrmLite或者AndrORM。
原帖子鏈接:
http://blog.csdn.net/way_ping_li/article/details/9229611
Android之經典Launcher主菜單模塊學習
引言:最近Android場 景桌面開始流行起來了,跟原始的Android桌面相比,場景桌面能逼真的模擬各種自然物體,并且通過點擊這些自然物體能進入對應的應用,這大大的豐富、 美觀了我們心愛的手機桌面,偶爾體驗一下,也不枉是一種享受。但這享受的前提是:這個場景桌面必須非常穩定、流暢、主題豐富等。因此,作為開發者而言,任 重而道遠啊。。。
好了,廢話不多說,進入正題,下面我就站在個人開發者的角度,簡單的模仿和分析一下場景桌面的設計流程,后續系列文章再為大家詳細分解各個模塊的功能和實現,敬請期待。首先,還是先來看看效果吧!無圖無真相是吧?呵呵~下面兩張圖片,是兩個主題對應的桌面。
正文分析:如上圖所示,簡單 的場景桌面大概有3、4頁主背景(具體由主題而定),可左右滑動,每個背景頁上擺放著各種擬物化的應用小圖標,同時為了使桌面"動"起來,我們可在一些小 圖標中加入動畫,比如說上圖一中粉色的小浣熊拿著照相機在閃閃光燈,也許你就想到,點擊這個相機應該是進入到相機應用了,而且會使桌面更加靈活生動。
從界面方面,我們就只能分析到這里了,下面我們從代碼方面作一下簡單分析,我們先來看看代碼結構:
從代碼結構中,我們就知道,這是一個很簡單的應用,總共才4個包:
①.com.way.bean:應該不用多說,學過Java的都知道,我這里只有一個類,從安卓原生的Launcher中移植過來的,即應用信息ApplicationInfo.java。
②.com.way.launcher:這里放Application和Activity等類,屬于應用的核心部分了,其實主體思路和架構也是來自原生Launcher,只是為了切換我們的需求,改成對應的了。
③.com.way.util: 這里放的是工具類,主要是解析xml文件的工具類,為了讓我們的桌面能使用各種主題,我們就會很輕易的想到使用xml文件作配置,比如assets目錄下 的scene_layout.xml文件,就是對應主題的所有配置:桌面背景頁、每一頁對應的應用圖標坐標值、每個應用圖標對應的入口、還有某些特定圖標 的動畫等。我們通過解析這個文件,就可以把對應主題drawable目錄下的圖片準確無誤的顯示在用戶的桌面上。
④.com.way.view: 這個包下放了所有我們需要用到的自定義View,本代碼中所有自定義View均在來自Android原生系統framework下、原生Launcher 應用以及一些開源項目。比如說AnalogClock.java、NumberClock.java等來自framework 下,PagedView.java、PagedViewCellLayout.java等來自原生 Launcher,PageIndicator.java、TitlePageIndicator.java來自開源項目。所以說,其實做Android 項目基本上就是Ctrl+c、Ctrl+v了,真正我寫的自定義View就是SceneImageView.java和 PagedViewIcon.java,主要是實現了點擊圖片變暗的點擊效果。
⑤.assets目錄:這個 目錄下放的是一套默認的主題,雖然我們的應用支持更換主題,但是,主題資源必須放在SD卡根目錄下的,需要單獨下載,因為內置在應用中是相當不明智的,會 造成編譯出來的apk相當大。而且有的用戶不一定每個主題都喜歡,所以,為了能夠使用更多主題,單獨存放主題資源是相當有必要的。
接下來的res目錄等,我就不具體分析了,相信做過Android開發的朋友都能看懂。
OK,場景桌面粗略分析就到這里了,欲知后事如何,請聽下回分解,O(∩_∩)O哈哈~
源代碼奉上:http://download.csdn.net/detail/weidi1989/6197113
7個主題打包奉上:http://download.csdn.net/detail/weidi1989/6197099
(注意:①.本代碼為utf-8編碼,基于eclipse工程打包,支持3.0以上手機運行,如遇奇葩問題,請留言。
②.本主題為適配480x800手機設計,大屏或小屏手機可能會出現不適配情況,接口也均僅適應本手機,如遇點擊應用圖標提示未安裝此應用,需要更改scene_layout.xml文件中的接口,后續將詳細講解。
</div>