7. StickyListHeaders GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView,支持快速滑动,支持Android2.3及以上
APP示例:Android 4.0联系人
效果图:raw.github.com/emilsjoland…
8. pinned-section-listview GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
效果图:raw.github.com/beworker/pi…
9. PinnedHeaderListView GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
10. QuickReturnHeader ListView/ScrollView的header或footer,当向下滚动时消失,向上滚动时出现
Demo地址:github.com/Trinea/Trin…
APP示例:google plus
11. IndexableListView ListView右侧会显示item首字母快捷索引,点击可快速滑动到某个item
Demo地址:github.com/Trinea/Trin…
APP示例:微信通讯录、小米联系人
12. CustomFastScrollView ListView快速滑动,同时屏幕中间PopupWindows显示滑动到的item内容或首字母
效果图:raw.github.com/nolanlawson…
13. Android-ScrollBarPanel ListView滑动时固定的Panel指示显示在scrollbar旁边
14. SlideExpandableListView 用户点击listView item滑出固定区域,其他item的区域收缩
Demo地址:github.com/Trinea/Trin…
15. JazzyListView ListView及GridView item以特殊动画效果进入屏幕,效果包括grow、cards、curl、wave、flip、fly等等
Demo地址:play.google.com/store/apps/…
效果展示:lab.hakim.se/scroll-effe…
16. ListViewAnimations 带Item显示动画的ListView,动画包括底部飞入、其他方向斜飞入、下层飞入、渐变消失、滑动删除等
Demo地址:play.google.com/store/apps/…
APP示例:Google plus、Google Now卡片式进入、小米系统中应用商店、联系人、游戏中心、音乐、文件管理器的ListView、Ultimate、Light Flow Lite、TreinVerkeer、Running Coach、Pearl Jam Lyrics、Calorie Chart、Car Hire、Super BART、DK FlashCards、Counter Plus、Voorlees Verhaaltjes 2.0
17. DevsmartLib-Android 横向ListView
Demo地址:github.com/Trinea/Trin…
二、ActionBar
1. ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题
Demo地址:play.google.com/store/apps/…
APP示例:太多了。。现在连google都在用
2. ActionBar-PullToRefresh 下拉刷新,ActionBar出现加载中提示
Demo地址:play.google.com/store/apps/…
APP示例:Gmail,Google plus,知乎等
3. FadingActionBar ListView向下滚动逐渐显现的ActionBar
Demo地址:play.google.com/store/apps/…
APP示例:google music,知乎
4. NotBoringActionBar google music下拉收缩的ActionBar
Demo地址:flavienlaurent.com/blog/2013/1…
APP示例:Google音乐
5. RefreshActionItem 带进度显示和刷新按钮的ActionBar
Demo地址:play.google.com/store/apps/…
APP示例:The New York Times,DevAppsDirect.
6. GlassActionBar 类似玻璃的有一定透明度的ActionBar
Demo地址:play.google.com/store/apps/…
APP示例:google music
三、Menu
1. MenuDrawer 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕上下左右划出,支持当前View处于上下层,支持Windows边缘、ListView边缘、ViewPager变化划出菜单等。
Demo地址:simonvt.github.io/android-men…
APP示例:Gmail、Google Music等大部分google app
2. SlidingMenu 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom、scale、slide up三种动画样式出现。
Demo地址:play.google.com/store/apps/…
APP示例:Foursquare, LinkedIn, Zappos, Rdio, Evernote Food, Plume, VLC for Android, ESPN ScoreCenter, MLS MatchDay, 9GAG, Wunderlist 2, The Verge, MTG Familiar, Mantano Reader, Falcon Pro (BETA), MW3 Barracks
MenuDrawer和SlidingMenu比较:SlidingMenu支持菜单动画样式出现,MenuDrawer支持菜单view处于内容的上下层
3. ArcMenu 支持类似Path的左下角动画旋转菜单及横向划出菜单、圆心弹出菜单
APP示例:Path
效果图:(有墙)dl.dropboxusercontent.com/u/11369687/…
dl.dropboxusercontent.com/u/11369687/…
dl.dropboxusercontent.com/u/11369687/…
4. android-satellite-menu 类似Path的左下角动画旋转菜单
Demo地址:github.com/Trinea/Trin…
APP示例:Path
5. radial-menu-widget 圆形菜单,支持二级菜单
项目地址:code.google.com/p/radial-me…
效果图:farm8.staticflickr.com/7377/116211…
6. Android Wheel Menu 圆形旋转选取菜单
效果图:raw.github.com/anupcowkur/…
7. FoldingNavigationDrawer滑动并以折叠方式打开菜单
使用介绍:play.google.com/store/apps/…
效果图:lh6.ggpht.com/VnKUZenAozQ…
四、ViewPager 、Gallery
1. Android-ViewPagerIndicator 配合ViewPager使用的Indicator,支持各种位置和样式
Demo地址:play.google.com/store/apps/…
APP示例:太多了。。
2. JazzyViewPager 支持Fragment切换动画的ViewPager,动画包括转盘、淡入淡出、翻页、层叠、旋转、方块、翻转、放大缩小等
Demo地址:github.com/jfeinstein1…
效果图:类似桌面左右切换的各种效果,不过桌面并非用ViewPager实现而已
3. Android-DirectionalViewPager 支持横向和纵向(垂直)的ViewPager
Demo地址:market.android.com/details?id=…
4. android-pulltorefresh 支持下拉刷新的ViewPager
Demo地址:github.com/Trinea/Trin…
APP示例:新浪微博各个页面
5. FancyCoverFlow支持Item切换动画效果的类似Gallery View
Demo地址:play.google.com/store/apps/…
效果图:github-camo.global.ssl.fastly.net/ef5ced52b7b…
6. AndroidTouchGallery 支持双击或双指缩放的Gallery(用ViewPager实现)
相比下面的PhotoView,在被放大后依然能滑到下一个item,并且支持直接从url和文件中获取图片,
Demo地址:github.com/Trinea/Trin…
APP示例:类似微信中查看聊天记录图片时可双击放大,并且放大情况下能正常左右滑动到前后图片
7. Salvage view 带View缓存的Viewpager PagerAdapter,很方便使用
五、GridView
1. StaggeredGridView 允许非对齐行的GridView
类似Pinterest的瀑布流,并且跟ListView一样自带View缓存,继承自ViewGroup
Demo地址:github.com/Trinea/Trin…
APP示例:Pinterest等
2. AndroidStaggeredGrid 允许非对齐行的GridView
类似Pinterest的瀑布流,继承自AbsListView
APP示例:Pinterest等
3. PinterestLikeAdapterView 允许非对齐行的GridView
类似Pinterest的瀑布流,允许下拉刷新
APP示例:Pinterest等
4. DraggableGridView Item可拖动交换位置的GridView,类似桌面的单屏效果
Demo地址:github.com/thquinn/Dra…
六、ImageView
1. PhotoView 支持双击或双指缩放的ImageView
在ViewPager等Scrolling view中正常使用,相比上面的AndroidTouchGallery,不仅支持ViewPager,同时支持单个ImageView
Demo地址:play.google.com/store/apps/…
APP示例:photup
2. android-gif-drawable 支持fig显示的view
用jni实现的,编译生成so库后直接xml定义view即可,而且本身不依赖于其他开源项目,所以相对下面的ImageViewEx简单的多
3. ImageViewEx 支持Gif显示的ImageView
项目地址:github.com/frapontillo…,
Demo地址:github.com/Trinea/Trin…
依赖很多,编译过程很繁琐!|_|!
4. RoundedImageView 带圆角的ImageView
效果图:raw.github.com/makeramen/R…
七、ProgressBar
1. SmoothProgressBar 水平进度条
Demo地址:play.google.com/store/apps/…
2. ProgressWheel 支持进度显示的圆形ProgressBar
Demo地址:github.com/Trinea/Trin…
3. android-square-progressbar 在图片周围显示进度
Demo地址:play.google.com/store/apps/…
APP示例:square
效果图:googledrive.com/host/0BwESw…
4. HoloCircularProgressBar Android4.1 时钟App样式
APP示例:Android4.1时钟App
效果图:raw.github.com/passsy/andr…
八、其他
1. achartengine 强大的图标绘制工具
支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、拨号图/表、立方线图及各种图的结合
项目地址:code.google.com/p/acharteng…
效果图:www.achartengine.org/dimages/ave…
www.achartengine.org/dimages/sal…
www.achartengine.org/dimages/tem…
www.achartengine.org/dimages/com…
www.achartengine.org/dimages/bud…
APP示例:Wordpress Android,Google Analytics
2. GraphView 绘制图表和曲线图的View
可用于Android上的曲形图、柱状图、波浪图展示
Demo工程:github.com/jjoe64/Grap…
Demo地址:play.google.com/store/apps/…
APP示例:Wordpress Android,Google Analytics
3. android-flip 类似Flipboard翻转动画的实现
Demo地址:github.com/openaphid/a…
APP示例:flipboard
4. FlipImageView 支持x、y、z及动画选择的翻转动画的实现
Demo地址:play.google.com/store/apps/…
5. SwipeBackLayout 左右或向上滑动返回的Activity
Demo地址:play.google.com/store/apps/…
APP示例:知乎
6. Cards-UI 卡片式View,支持单个卡片,item为卡片的ListView
Demo地址:github.com/Trinea/Trin…
7. cardslib 卡片式View,支持单个卡片,item为卡片的ListView和GridView
Demo地址:play.google.com/store/apps/…
8. android-styled-dialogs 可自定义样式的dialog
默认与Holo主题样式一致,在Android2.2以上同一样式
Demo地址:github.com/Trinea/Trin…
9. Crouton 丰富样式的Toast
允许alert、comfirm、info样式及点击消失样式,允许设置Toast显示时间,允许自定义View。
Demo地址:play.google.com/store/apps/…
10. supertooltips 带动画效果的Tips显示
Demo地址:play.google.com/store/apps/…
11. Android ViewBadger为其他View添加角标等
Demo地址:github.com/Trinea/Trin…
效果图:github-camo.global.ssl.fastly.net/a705a3e88c7…
12. Android Sliding Up Panel 可拖动的View,能在当前Activity上扶起一个可拖动的Panel
Demo地址:play.google.com/store/apps/…
APP示例:Google Music精简播放栏
13. android-times-square Android日历部件
支持选取单个日期,多个日期,及日期区间段和对话框形式显示
Demo地址:github.com/Trinea/Trin…
14. android-calendar-card 日历
Demo地址:play.google.com/store/apps/…
效果图:raw.github.com/kenumir/and…
15. ColorPickerView 颜色选择器,支持PopupWindows或新的Activity中打开
项目地址:code.google.com/p/color-pic…
效果图:oi41.tinypic.com/33c6mm8.jpg
16. HoloColorPicker 颜色选择器
Demo地址:docs.google.com/file/d/0Bwc…
17. AndroidWheel Android Wheel支持城市、多种日期时间、密码、图片
效果图:farm6.staticflickr.com/5532/116215…
18. android-flowtextview文字自动环绕其他View的Layout
项目地址:code.google.com/p/android-f…
效果图:i949.photobucket.com/albums/ad33…
19. Segmented Radio Buttons for Android iOS’s segmented controls的实现
Demo地址:github.com/thquinn/Dra…
效果图:raw.github.com/vinc3m1/and…
20. TableFixHeaders 第一列固定的Table
Demo地址:bit.ly/13buAIq
21. Android Form EditText 验证输入合法性的编辑框
支持输入、英文、ip、url等多种正则验证
Demo地址:play.google.com/store/apps/…
22. UITableView ios风格控件
包括Button、ListView、TableView
Demo地址:github.com/Trinea/Trin…
23. ATableView ios风格控件
Demo地址:play.google.com/store/apps/…
24. UndoBar屏幕底部显示取消或是确认的PopupWindows
25. Inscription可用于展示应用change和new feature信息
26. ActivityTransition Activity切换动画,包括渐变、flip、某个位置进入等等
效果图:类似桌面左右切换的各种效果,不过桌面并非用ViewPager实现而已
27. Cropper 图片局部剪切工具,可触摸控制选择区域或旋转
效果图:github-camo.global.ssl.fastly.net/e4fde77bf41…
28. GlowPadBackport将Android4.2的锁屏界面解锁扩展到Android1.6及1.6+
Demo地址:play.google.com/store/apps/…
效果图:lh6.ggpht.com/U070b6Lh6cV…
29. GlowPadView Android4锁屏界面解锁
效果图:raw.github.com/nadavfima/G…
30. android-lockpattern Android的图案密码解锁
项目地址:code.google.com/p/android-l…
Demo地址:play.google.com/store/apps/…
使用介绍:code.google.com/p/android-l…
示例APP:Android开机的图案密码解锁,支付宝的密码解锁
Android开源项目第二类——工具库
一、依赖注入DI
通过依赖注入减少View、服务、资源简化初始化,事件绑定等重复繁琐工作
1. AndroidAnnotations(Code Diet) android快速开发框架
特点:(1)依赖注入:包括view,extras,系统服务,资源等等
(2)简单的线程模型,通过annotation表示方法运行在ui线程还是后台线程
(3)事件绑定:通过annotation表示view的响应事件,不用在写内部类
(4)REST客户端:定义客户端接口,自动生成REST请求的实现
(5)没有你想象的复杂:AndroidAnnotations只是在在编译时生成相应子类
(6)不影响应用性能:仅50kb,在编译时完成,不会对运行时有性能影响。
PS:与roboguice的比较:roboguice通过运行时读取annotations进行反射,所以可能影响应用性能,而AndroidAnnotations在编译时生成子类,所以对性能没有影响
2. roboguice 帮你处理了很多代码异常,利用annotation使得更少的代码完成项目
3. butterknife 利用annotation帮你快速完成View的初始化,减少代码
文档介绍:jakewharton.github.io/butterknife…
4. Dagger 依赖注入,适用于Android和Java
二、图片缓存
1. Android-Universal-Image-Loader 图片缓存
目前使用最广泛的图片缓存,支持主流图片缓存的绝大多数特性。
Demo地址:github.com/Trinea/Trin…
文档介绍:www.intexsoft.com/blog/item/7…
2. picasso square开源的图片缓存
文档介绍:square.github.io/picasso/
特点:(1)可以自动检测adapter的重用并取消之前的下载
(2)图片变换
(3)可以加载本地资源
(4)可以设置占位资源
(5)支持debug模式
3. ImageCache 图片缓存,包含内存和Sdcard缓存
Demo地址:play.google.com/store/apps/…
文档介绍:www.trinea.cn/?p=704
特点:(1)支持预取新图片,支持等待队列
(2)包含二级缓存,可自定义文件名保存规则
(3)可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法
(4)可方便的保存及初始化恢复数据
(5)支持不同类型网络处理
(6)可根据系统配置初始化缓存等
三、网络相关
1. Asynchronous Http Client for Android Android异步Http请求
特点:(1) 在匿名回调中处理请求结果
(2) 在UI线程外进行http请求
(3) 文件断点上传
(4) 智能重试
(5) 默认gzip压缩
(6) 支持解析成Json格式
(7) 可将Cookies持久化到SharedPreferences
2. android-query 异步加载,更少代码完成Android加载
项目地址:github.com/androidquer…或code.google.com/p/android-q…
文档介绍:code.google.com/p/android-q…?
Demo地址:play.google.com/store/apps/…
特点:code.google.com/p/android-q…?
3. Async Http Client Java异步Http请求
文档介绍:sonatype.github.io/async-http-…
4. Ion 支持图片、json、http post等异步请求
项目地址:github.com/koush/ion
5. HttpCache Http缓存
Demo地址:play.google.com/store/apps/…
Demo代码:github.com/Trinea/Andr…
特点是:(1) 根据cache-control、expires缓存http请求
(2) 支持同步、异步Http请求
(3) 在匿名回调中处理请求结果
(4) 在UI线程外进行http请求
(5) 默认gzip压缩
6. Http Request
7. okhttp square开源的http工具类
特点:(1) 支持SPDY(zh.wikipedia.org/wiki/SPDY)协…)和优先级来缩短加载时间。
(2) 如果SPDY不可用,利用连接池减少请求延迟
(3) Gzip压缩
(4) Response缓存减少不必要的请求
8. Retrofit RESTFUL API设计
文档介绍:square.github.io/retrofit/
四、数据库 orm工具包
orm的db工具类,简化建表、查询、更新、插入、事务、索引的操作
1. greenDAO Android Sqlite orm的db工具类
文档介绍:greendao-orm.com/documentati…
官方网站:greendao-orm.com/
特点:(1)性能佳
(2) 简单易用的API
(3) 内存小好小
(4) 库大小小
2. ActiveAndroid Android Sqlite orm的db工具类
3. Sprinkles Android Sqlite orm的db工具类
文档介绍:emilsjolander.github.io/blog/2013/1…
特点:比较显著的特点就是配合github.com/square/retr…能保存从服务器获取的数据
五、Android公共库
1. Guava Google的基于java1.6的类库集合的扩展项目
包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高质量的API可以使你的JAVa代码更加优雅,更加简洁
项目地址:code.google.com/p/guava-lib…
文档介绍:code.google.com/p/guava-lib…
2. AndroidCommon Android公共库
Demo地址:play.google.com/store/apps/…
文档介绍:www.trinea.cn/?p=778
包括:(1)缓存(图片缓存、预取缓存、网络缓存)
(2) 公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)
(3) Android常用工具类(网络、下载、Android资源操作、shell、文件、Json、随机数、Collection等等)
六、Android 高版本向低版本兼容
1. ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题
Demo地址:play.google.com/store/apps/…
APP示例:太多了。。现在连google都在用
2. Nine Old Androids 将Android 3.0(Honeycomb)所有动画API(ObjectAnimator ValueAnimator等)兼容到Android1.0
Demo地址:play.google.com/store/apps/…
文档介绍:nineoldandroids.com/
3. HoloEverywhere 将Android 3.0的Holo主题兼容到Android2.1++
Demo地址:raw.github.com/Prototik/Ho…
文档介绍:android-developers.blogspot.com/2012/01/hol…
七、多媒体相关
1. cocos2d-x 跨平台的2d游戏框架,支持Android、IOS、Linux、Windows等众多平台
官方网站:www.cocos2d-x.org/
2. Vitamio 是一款Android与iOS平台上的全能多媒体开发框架
特点:(1) 全面支持硬件解码与GPU渲染
(2) 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频
(3) 在Android与iOS上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8)等常见的多种视频流媒体协议,包括点播与直播。
3. PhotoProcessing 利用ndk处理图片库,支持Instafix、Ansel、Testino、XPro、Retro、BW、Sepia、Cyano、Georgia、Sahara、HDR、Rotate、Flip
Demo地址:github.com/Trinea/Trin…
4. Android StackBlur 图片模糊效果工具类
Demo地址:github.com/kikoso/andr…
八、其他
1. Salvage view 带View缓存的Viewpager PagerAdapter,很方便使用
2. Android-PasscodeLock 应用锁,每次启动或从任何Activity启动应用都需要输入四位数字的密码方可进入
Demo地址:play.google.com/store/apps/…
APP示例:Wordpress Android,支付宝,挖财
3. android-lockpattern Android的图案密码解锁
项目地址:code.google.com/p/android-l…
Demo地址:play.google.com/store/apps/…
使用介绍:code.google.com/p/android-l…
示例APP:Android开机的图案密码解锁,支付宝的密码解锁
4. GlowPadBackport将Android4.2的锁屏界面解锁扩展到Android1.6及1.6+
Demo地址:play.google.com/store/apps/…
效果图:lh6.ggpht.com/U070b6Lh6cV…
5. GlowPadView Android4锁屏界面解锁
效果图:raw.github.com/nadavfima/G…
6. Android Priority Job Queue Android后台任务队列
7. jsoup 一个解析html的java库,可方便的提取和操作数据
项目地址:github.com/jhy/jsoup
官方网站:jsoup.org/
作用:(1) 从一个url、文件或string获得html并解析
(2) 利用dom遍历或css选择器查找、提取数据
(3) 操作html元素
(4) 根据白名单去除用于提交的非法数据防止xss攻击
(5) 输出整齐的html
8.ZIP java压缩和解压库
作用:(1) 解压和压缩,并支持文件夹内递归操作
(2) 支持包含和排除某些元素
(3) 支持重命名元素
(4) 支持遍历zip包内容
(5) 比较两个zip包等功能
9. Cobub Razor 开源的mobile行为分析系统,包括web端、android端,支持ios和window phone
Demo地址:demo.cobub.com/razor
网站介绍:dev.cobub.com/
10. aFileChooser 文件选择器,可内嵌到程序中,而无需使用系统或三方文件选择器。
11. androidpn 基于xmpp协议的消息推送解决方案,包括服务器端和android端。
12. Android插件式开发
项目地址:github.com/umeng/apf
Android开源项目第三类——优秀项目
一 与Linux相关
Linux
二 Android项目
Android
项目地址:android.googlesource.com/或github.com/android
以上两个项目,不解释
三 其他
1. ZXing 二维码扫描工具
项目地址:github.com/zxing/zxing或code.google.com/p/zxing/
APK地址:play.google.com/store/apps/…
PS:现在市面上很多应用的二维码扫描功能都是从这个修改而来
2. photup 编辑机批量上传照片到facebook上
APK地址:play.google.com/store/apps/…
PS:代码分包合理,很棒。不过这个项目依赖的开源项目比较多,比较难编译
3. Github的Android客户端项目
APK地址:play.google.com/store/apps/…
4. MIUI便签
APK地址:github.com/Trinea/Trin…
PS:项目分包比较合理,相比较miui的文件管理器github.com/MiCode/File…代码规范较好得多
5. 四次元-新浪微博客户端
APK地址:play.google.com/store/apps/…
6. gnucash-一个记账理财软件
APK地址:play.google.com/store/apps/…
7. AntennaPod支持rss订阅、音乐订阅
APK地址:play.google.com/store/apps/…
8. ChaseWhisplyProject 打鬼游戏
APK地址:play.google.com/store/apps/…
9. Tweet Lanes 功能完整的Twitter客户端
APK地址:play.google.com/store/apps/…
Android开源项目第四类——开发及测试工具
1、Buck
facebook开源的Android编译工具,效率是ant的两倍。主要优点在于:
(1) 加快编译速度,通过并行利用多核cpu和跟踪不变资源减少增量编译时间实现
(2) 可以在编译系统中生成编译规则而无须另外的系统生成编译规则文件
(3) 编译同时可生成单元测试结果
(4) 既可用于IDE编译也可用于持续集成编译
(5) facebook持续优化中
2、Android Maven Plugin
Android Maven插件,可用于对android三方依赖进行管理。在J2EE开发中,maven是非常成熟的依赖库管理工具,可统一管理依赖库。
3、Spoon
可用于android不同机型设备自动化测试,能将应用apk和测试apk运行在不同机器上并生成相应测试报告。