赞
踩
原文地址为http://www.trinea.cn/Android/android-open-source-projects-view/,作者Trinea
主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Activity Animation等等。
android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新
ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal
)ScrollView、Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多。并且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好。
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true
APP示例:新浪微博各个页面
android-pulltorefresh-listview 下拉刷新ListView
项目地址:https://github.com/johannilsson/android-pulltorefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refresh-listview-demo.apk?raw=true
PS:这个被很多人使用的项目实际有不少bug,推荐使用上面的android-pulltorefresh
DropDownListView 下拉刷新及滑动到底部加载更多ListView
项目地址:https://github.com/Trinea/AndroidCommon
Demo地址:https://play.google.com/store/apps/details?id=cn.trinea.android.demo
文档介绍:http://www.trinea.cn/?p=523
DragSortListView 拖动排序的ListView
同时支持ListView滑动item删除,各个Item高度不一、单选、复选、CursorAdapter做为适配器、拖动背景变化等
项目地址:https://github.com/bauerca/drag-sort-listview
Demo地址:https://play.google.com/store/apps/details?id=com.mobeta.android.demodslv
APP示例:Wordpress Android
SwipeListView 支持定义ListView左右滑动事件,支持左右滑动位移,支持定义动画时间
项目地址:https://github.com/47deg/android-swipelistview
Demo地址:https://play.google.com/store/apps/details?id=com.fortysevendeg.android.swipelistview
APP示例:微信
Android-SwipeToDismiss 滑动Item消失ListView
项目地址:https://github.com/romannurik/Android-SwipeToDismiss
支持3.0以下版本见:https://github.com/JakeWharton/SwipeToDismissNOA
Demo地址:https://github.com/JakeWharton/SwipeToDismissNOA/SwipeToDismissNOA.apk/qr_code
StickyListHeaders GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView,支持快速滑动,支持Android2.3及以上
项目地址:https://github.com/emilsjolander/StickyListHeaders
APP示例:Android 4.0联系人
效果图:
pinned-section-listview GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
项目地址:https://github.com/beworker/pinned-section-listview
效果图:
PinnedHeaderListView GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView
项目地址:https://github.com/JimiSmith/PinnedHeaderListView
QuickReturnHeader ListView/ScrollView的header或footer,当向下滚动时消失,向上滚动时出现
项目地址:https://github.com/ManuelPeinado/QuickReturnHeader
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/quick-return-header-demo.apk?raw=true
APP示例:google plus
IndexableListView ListView右侧会显示item首字母快捷索引,点击可快速滑动到某个item
项目地址:https://github.com/woozzu/IndexableListView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/indexable-listview.apk?raw=true
APP示例:微信通讯录、小米联系人
CustomFastScrollView ListView快速滑动,同时屏幕中间PopupWindows显示滑动到的item内容或首字母
项目地址:https://github.com/nolanlawson/CustomFastScrollViewDemo
效果图:
Android-ScrollBarPanel ListView滑动时固定的Panel指示显示在scrollbar旁边
项目地址:https://github.com/rno/Android-ScrollBarPanel
效果展示:https://github.com/rno/Android-ScrollBarPanel/raw/master/demo_capture.png
SlideExpandableListView 用户点击listView item滑出固定区域,其他item的区域收缩
项目地址:https://github.com/tjerkw/Android-SlideExpandableListView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/slide-expandable-listView-demo.apk?raw=true
JazzyListView ListView及GridView item以特殊动画效果进入屏幕,效果包括grow、cards、curl、wave、flip、fly等等
项目地址:https://github.com/twotoasters/JazzyListView
Demo地址:https://play.google.com/store/apps/details?id=com.twotoasters.jazzylistview.sample
效果展示:http://lab.hakim.se/scroll-effects/
ListViewAnimations 带Item显示动画的ListView,动画包括底部飞入、其他方向斜飞入、下层飞入、渐变消失、滑动删除等
项目地址:https://github.com/nhaarman/ListViewAnimations
Demo地址:https://play.google.com/store/apps/details?id=com.haarman.listviewanimations
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
DevsmartLib-Android 横向ListView
项目地址:https://github.com/dinocore1/DevsmartLib-Android
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/horizontal-listview-demo.apk?raw=true
ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题
项目地址:https://github.com/JakeWharton/ActionBarSherlock
Demo地址:https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos
APP示例:太多了。。现在连google都在用
ActionBar-PullToRefresh 下拉刷新,ActionBar出现加载中提示
项目地址:https://github.com/chrisbanes/ActionBar-PullToRefresh
Demo地址:https://play.google.com/store/apps/details?id=uk.co.senab.actionbarpulltorefresh.samples.stock
APP示例:Gmail,Google plus,知乎等
FadingActionBar ListView向下滚动逐渐显现的ActionBar
项目地址:https://github.com/ManuelPeinado/FadingActionBar
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.fadingactionbar.demo
APP示例:google music,知乎
NotBoringActionBar google music下拉收缩的ActionBar
项目地址:https://github.com/flavienlaurent/NotBoringActionBar
Demo地址:http://flavienlaurent.com/blog/2013/11/20/making-your-action-bar-not-boring/
APP示例:Google音乐
RefreshActionItem 带进度显示和刷新按钮的ActionBar
项目地址:https://github.com/ManuelPeinado/RefreshActionItem
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.refreshactionitem.demo
APP示例:The New York Times,DevAppsDirect.
GlassActionBar 类似玻璃的有一定透明度的ActionBar
项目地址:https://github.com/ManuelPeinado/GlassActionBar
Demo地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.glassactionbardemo
APP示例:google music
MenuDrawer 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕上下左右划出,支持当前View处于上下层,支持Windows边缘、ListView边缘、ViewPager变化划出菜单等。
项目地址:https://github.com/SimonVT/android-menudrawer
Demo地址:http://simonvt.github.io/android-menudrawer/
APP示例:Gmail、Google Music等大部分google app
SlidingMenu 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom、scale、slide up三种动画样式出现。
项目地址:https://github.com/jfeinstein10/SlidingMenu
Demo地址:https://play.google.com/store/apps/details?id=com.slidingmenu.example
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处于内容的上下层
ArcMenu 支持类似Path的左下角动画旋转菜单及横向划出菜单、圆心弹出菜单
项目地址:https://github.com/daCapricorn/ArcMenu
APP示例:Path
效果图:
https://dl.dropboxusercontent.com/u/11369687/preview1.png
https://dl.dropboxusercontent.com/u/11369687/raymenu.png
android-satellite-menu 类似Path的左下角动画旋转菜单
项目地址:https://github.com/siyamed/android-satellite-menu
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/satellite-menu-demo.apk?raw=true
APP示例:Path
radial-menu-widget 圆形菜单,支持二级菜单
项目地址:https://code.google.com/p/radial-menu-widget/
效果图:http://farm8.staticflickr.com/7377/11621125154_d1773c2dcc_o.jpg
Android Wheel Menu 圆形旋转选取菜单
项目地址:https://github.com/anupcowkur/Android-Wheel-Menu
效果图:
FoldingNavigationDrawer滑动并以折叠方式打开菜单
项目地址:https://github.com/tibi1712/FoldingNavigationDrawer-Android
使用介绍:https://play.google.com/store/apps/details?id=com.ptr.folding.sample
效果图:
Android-ViewPagerIndicator 配合ViewPager使用的Indicator,支持各种位置和样式
项目地址:https://github.com/JakeWharton/Android-ViewPagerIndicator
Demo地址:https://play.google.com/store/apps/details?id=com.viewpagerindicator.sample
APP示例:太多了。。
JazzyViewPager 支持Fragment切换动画的ViewPager,动画包括转盘、淡入淡出、翻页、层叠、旋转、方块、翻转、放大缩小等
项目地址:https://github.com/jfeinstein10/JazzyViewPager
Demo地址:https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true
效果类似桌面左右切换的各种效果,不过桌面并非用ViewPager实现而已
Android-DirectionalViewPager 支持横向和纵向(垂直)的ViewPager
项目地址:https://github.com/JakeWharton/Android-DirectionalViewPager
Demo地址:https://market.android.com/details?id=com.directionalviewpager.sample
android-pulltorefresh 支持下拉刷新的ViewPager
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true
APP示例:新浪微博各个页面
FancyCoverFlow支持Item切换动画效果的类似Gallery View
项目地址:https://github.com/davidschreiber/FancyCoverFlow
Demo地址:https://play.google.com/store/apps/details?id=at.technikum.mti.fancycoverflow.samples
效果图:
AndroidTouchGallery 支持双击或双指缩放的Gallery(用ViewPager实现)
相比下面的PhotoView,在被放大后依然能滑到下一个item,并且支持直接从url和文件中获取图片,
项目地址:https://github.com/Dreddik/AndroidTouchGallery
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/touch-gallery-demo.apk?raw=true
APP示例:类似微信中查看聊天记录图片时可双击放大,并且放大情况下能正常左右滑动到前后图片
Salvage view 带View缓存的Viewpager PagerAdapter,很方便使用
项目地址:https://github.com/JakeWharton/salvage
StaggeredGridView 允许非对齐行的GridView
类似Pinterest的瀑布流,并且跟ListView一样自带View缓存,继承自ViewGroup
项目地址:https://github.com/maurycyw/StaggeredGridView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/staggered-gridview-demo.apk?raw=true
APP示例:Pinterest等
AndroidStaggeredGrid 允许非对齐行的GridView
类似Pinterest的瀑布流,继承自AbsListView
项目地址:https://github.com/etsy/AndroidStaggeredGrid
APP示例:Pinterest等
PinterestLikeAdapterView 允许非对齐行的GridView
类似Pinterest的瀑布流,允许下拉刷新
项目地址:https://github.com/GDG-Korea/PinterestLikeAdapterView
APP示例:Pinterest等
DraggableGridView Item可拖动交换位置的GridView,类似桌面的单屏效果
项目地址:https://github.com/thquinn/DraggableGridView
Demo地址:https://github.com/thquinn/DraggableGridView/blob/master/bin/DraggableGridViewSample.apk?raw=true
PhotoView 支持双击或双指缩放的ImageView
在ViewPager等Scrolling view中正常使用,相比上面的AndroidTouchGallery,不仅支持ViewPager,同时支持单个ImageView
项目地址:https://github.com/chrisbanes/PhotoView
Demo地址:https://play.google.com/store/apps/details?id=uk.co.senab.photoview.sample
APP示例:photup
android-gif-drawable 支持gif显示的view
项目地址:https://github.com/koral--/android-gif-drawable
用jni实现的,编译生成so库后直接xml定义view即可,而且本身不依赖于其他开源项目所以相对下面的ImageViewEx简单的多
ImageViewEx 支持Gif显示的ImageView
项目地址:https://github.com/frapontillo/ImageViewEx
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/imageviewex-demo.apk?raw=true
依赖很多,编译过程很繁琐!|_|!
RoundedImageView 带圆角的ImageView
项目地址:https://github.com/vinc3m1/RoundedImageView
效果图:
SmoothProgressBar 水平进度条
项目地址:https://github.com/castorflex/SmoothProgressBar
Demo地址:https://play.google.com/store/apps/details?id=fr.castorflex.android.smoothprogressbar.sample
ProgressWheel 支持进度显示的圆形ProgressBar
项目地址:https://github.com/Todd-Davies/ProgressWheel
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/progress-wheel-demo.apk?raw=true
android-square-progressbar 在图片周围显示进度
项目地址:https://github.com/mrwonderman/android-square-progressbar
Demo地址:https://play.google.com/store/apps/details?id=net.yscs.android.square_progressbar_example
APP示例:square
效果图:
HoloCircularProgressBar Android4.1 时钟App样式
项目地址:https://github.com/passsy/android-HoloCircularProgressBar
APP示例:Android4.1时钟App
效果图:https://raw.github.com/passsy/android-HoloCircularProgressBar/master/raw/screenshot1.png
achartengine 强大的图标绘制工具
支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、拨号图/表、立方线图及各种图的结合
项目地址:https://code.google.com/p/achartengine/
官方网站:http://www.achartengine.org/
效果图:
http://www.achartengine.org/dimages/sales_line_and_area_chart.png
http://www.achartengine.org/dimages/temperature_range_chart.png
http://www.achartengine.org/dimages/combined_chart.png
http://www.achartengine.org/dimages/budget_chart.png
APP示例:Wordpress Android,Google Analytics
GraphView 绘制图表和曲线图的View
可用于Android上的曲形图、柱状图、波浪图展示
项目地址:https://github.com/jjoe64/GraphView
Demo工程:https://github.com/jjoe64/GraphView-Demos
Demo地址:https://play.google.com/store/apps/details?id=com.sothree.umano
APP示例:Wordpress Android,Google Analytics
android-flip 类似Flipboard翻转动画的实现
项目地址:https://github.com/openaphid/android-flip
Demo地址:https://github.com/openaphid/android-flip/blob/master/FlipView/Demo/APK/Aphid-FlipView-Demo.apk?raw=true
APP示例:flipboard
FlipImageView 支持x、y、z及动画选择的翻转动画的实现
项目地址:https://github.com/castorflex/FlipImageView
Demo地址:https://play.google.com/store/apps/details?id=fr.castorflex.android.flipimageview
SwipeBackLayout 左右或向上滑动返回的Activity
项目地址:https://github.com/Issacw0ng/SwipeBackLayout
Demo地址:https://play.google.com/store/apps/details?id=me.imid.swipebacklayout.demo
APP示例:知乎
Cards-UI 卡片式View,支持单个卡片,item为卡片的ListView
项目地址:https://github.com/afollestad/Cards-UI
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/cards-ui-demo.apk?raw=true
cardslib 卡片式View,支持单个卡片,item为卡片的ListView和GridView
项目地址:https://github.com/gabrielemariotti/cardslib
Demo地址:https://play.google.com/store/apps/details?id=it.gmariotti.cardslib.demo
android-styled-dialogs 可自定义样式的dialog
默认与Holo主题样式一致,在Android2.2以上同一样式
项目地址:https://github.com/inmite/android-styled-dialogs
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/styled-dialogs-demo.apk?raw=true
Crouton 丰富样式的Toast
允许alert、comfirm、info样式及点击消失样式,允许设置Toast显示时间,允许自定义View。
项目地址:https://github.com/keyboardsurfer/Crouton
Demo地址:http://play.google.com/store/apps/details?id=de.keyboardsurfer.app.demo.crouton
supertooltips 带动画效果的Tips显示
项目地址:https://github.com/nhaarman/supertooltips
Demo地址:https://play.google.com/store/apps/details?id=com.haarman.supertooltips
Android ViewBadger为其他View添加角标等
项目地址:https://github.com/jgilfelt/android-viewbadger
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/android-viewbadger.apk?raw=true
效果图:https://github-camo.global.ssl.fastly.net/a705a3e88c75ae2394943bd7c56f725697616ea8/687474703a2f2f7777772e6a65666667696c66656c742e636f6d2f766965776261646765722f76622d31612e706e67
Android Sliding Up Panel 可拖动的View,能在当前Activity上扶起一个可拖动的Panel
项目地址:https://github.com/umano/AndroidSlidingUpPanel
Demo地址:https://play.google.com/store/apps/details?id=com.sothree.umano
APP示例:Google Music精简播放栏
android-times-square Android日历部件
支持选取单个日期,多个日期,及日期区间段和对话框形式显示
项目地址:https://github.com/square/android-times-square
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/times-square-demo.apk?raw=true
android-calendar-card 日历
项目地址:https://github.com/kenumir/android-calendar-card
Demo地址:https://play.google.com/store/apps/details?id=com.wt.calendarcardsample
效果图:
ColorPickerView 颜色选择器,支持PopupWindows或新的Activity中打开
项目地址:https://code.google.com/p/color-picker-view/
效果图:
HoloColorPicker 颜色选择器
项目地址:https://github.com/LarsWerkman/HoloColorPicker
Demo地址:https://docs.google.com/file/d/0BwclyDTlLrdXRzVnTGJvTlRfU2s/edit
AndroidWheel Android Wheel支持城市、多种日期时间、密码、图片
项目地址:https://github.com/sephiroth74/AndroidWheel
效果图:
android-flowtextview文字自动环绕其他View的Layout
项目地址:https://code.google.com/p/android-flowtextview/
效果图:http://i949.photobucket.com/albums/ad332/vostroman1500/1.png
Segmented Radio Buttons for Android iOS’s segmented controls的实现
项目地址:https://github.com/vinc3m1/android-segmentedradiobutton
Demo地址:https://github.com/thquinn/DraggableGridView/blob/master/bin/DraggableGridViewSample.apk?raw=true
效果图:
TableFixHeaders 第一列固定的Table
项目地址:https://github.com/InQBarna/TableFixHeaders
Demo地址:http://bit.ly/13buAIq
Android Form EditText 验证输入合法性的编辑框
支持输入、英文、ip、url等多种正则验证
项目地址:https://github.com/vekexasia/android-edittext-validator
Demo地址:https://play.google.com/store/apps/details?id=com.andreabaccega.edittextformexample
UITableView ios风格控件
包括Button、ListView、TableView
项目地址:https://github.com/thiagolocatelli/android-uitableview
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/ui-tableview-demo.apk?raw=true
ATableView ios风格控件
项目地址:https://github.com/dmacosta/ATableView
Demo地址:https://play.google.com/store/apps/details?id=com.nakardo.atableview.demo
UndoBar屏幕底部显示取消或是确认的PopupWindows
项目地址:https://github.com/soarcn/UndoBar
效果图:
Inscription可用于展示应用change和new feature信息
项目地址:https://github.com/MartinvanZ/Inscription
ActivityTransition Activity切换动画,包括渐变、flip、某个位置进入等等
项目地址:https://github.com/ophilbert/ActivityTransition
使用介绍:https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true
效果图:类似桌面左右切换的各种效果,不过桌面并非用ViewPager实现而已
Cropper 图片局部剪切工具,可触摸控制选择区域或旋转
项目地址:https://github.com/edmodo/cropper
使用介绍:https://github.com/edmodo/cropper/wiki
效果图:
GlowPadBackport将Android4.2的锁屏界面解锁扩展到Android1.6及1.6+
项目地址:https://github.com/rock3r/GlowPadBackport
Demo地址:https://play.google.com/store/apps/details?id=net.sebastianopoggi.samples.ui.GlowPadSample
效果图:
GlowPadView Android4锁屏界面解锁
项目地址:https://github.com/nadavfima/GlowPadView
效果图:https://raw.github.com/nadavfima/GlowPadView/master/example.png
android-lockpattern Android的图案密码解锁
项目地址:https://code.google.com/p/android-lockpattern/
Demo地址:https://play.google.com/store/apps/details?id=group.pals.android.lib.ui.lockpattern.demo
使用介绍:https://code.google.com/p/android-lockpattern/wiki/QuickUse
示例APP:Android开机的图案密码解锁,支付宝的密码解锁
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea
GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。为此,CSDN特整理了在GitHub平台上最受欢迎的Android及iOS开源项目,以飨开发者。
下面,就让我们一起来看看,在GitHub平台上,究竟有哪些Android开源项目最火,也最受开发者欢迎。
ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。
对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局。能够让开发者轻松开发一款带动作栏(Action bar)的应用,并且适用于Android 2.x及其以上所有版本。
详情请参考:ActionBarSherlock
Facebook SDK for Android是一个开源库,允许开发者将Facebook集成到所开发的Android应用中。
如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Facebook Developers查看。
3. SlidingMenu(SlidingMenu Demos)
SlidingMenu是一个开源的Android库,能够让开发者轻松开发一款应用,实现类似于Google+、Youtube和Facebook应用中非常流行的滑动式菜单。
使用SlidingMenu的Android应用:
4. cocos2d-x
在移动开发领域,将Cocos2D-X用于主流iOS/Android游戏开发的公司、开发团队多不胜数。cocos2d-x是一个开源的支持多平台的2D游戏框架,使用C++开发,基于cocos2d-iphone,在MIT许可证下发布。主分支在GitHub上使用OpenGL ES 2.0渲染,而旧版gles11分支则使用OpenGL ES 1.1渲染。
支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。支持C++、Lua、JavaScript编程语言。
5. android
GitHub Android App是GitHub开源的Android客户端,支持Issues、Gists,并集成了新闻Feed,能够让你及时跟进组织及关注的开发者、库等。同时,该应用还提供了一个用户快速访问你所创建、监控及发布issue的面板,可查看并将问题加入到收藏夹,可对标签、里程碑和任务进行过滤配置。
android资源库包含了GitHub Android App的所有源代码。
ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面。
兼容Android支持库的ViewPager及ActionBarSherlock,最初是基于Patrik Åkerfeldt的ViewFlow,开发者可以直接登陆Google Play下载该项目的演示应用。
7. MonoGame
MonoGame是一个Microsoft XNA 4.x Framework的开源跨平台实现。用于让XNA开发者将他们在Xbox 360、Windows & Windows Phone上开发的游戏移植到iOS、Android、Mac OS X、Linux及Windows 8 Metro上,目前,PlayStation Mobile & Raspberry PI的开发正在进行中。
详情请参考:MonoGame
该项目用于为Android提供一个可重用的下拉刷新部件。它最初来源于Johan Nilsson的库(主要是图形、字符串和动画),但这些后来都已被取代。
android-async-http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。
10. Android-Universal-Image-Loader
Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。
Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。
11. GreenDroid
GreenDroid最初是由Cyril Mottier发起,是一个Android的UI开发类库,能够让UI开发更加简便,并且在应用中始终保持一致。
详情请参考:Cyril Mottier's Blog
12. Anki-Android
AnkiDroid是一个免费、开源的Android的闪存应用,可直接从Google Play进行下载。
详情请参考:ankidroid
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当开发者需要突出展现用户行为或在全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,且系统能够很好地根据不同的屏幕配置来适应操作栏的外观。
Action bar的主要目的:
14. android-viewflow
android-viewflow是Android平台上的一个视图切换的效果库,ViewFlow相当于Android UI部件提供水平滚动的ViewGroup,使用Adapter进行条目绑定。
当使用Android地图外部库(com.google.android.maps)时,android-mapviewballoons会提供一个简单的方式来对地图覆盖进行标注,就是一个简单的信息气泡。
它由BalloonOverlayView组成,是一个代表显示你的MapView及BalloonItemizedOverlay的气泡的视图,BalloonItemizedOverlay是ItemizedOverlay的一个抽象扩展。
16. PushSharp
一个向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone和Windows 8设备发送推送通知的服务器端库。
Android Annotations是一个开源的框架,用于加速 Android应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性。
18. HockeyKit
Hockey是一个iOS Ad-Hoc自动更新框架。苹果App Store中的所有App都可以使用它,它能够显著地提高Beta测试的整个过程,分为两部分:服务器和客户端框架。服务器组件需要所有脚本,但在没有客户端库的情况下,也可以单独工作。它提供一个Web接口,Beta测试者可以使用它来安装最新的AdHoc配置文件,也可以直接在设备上通过Safari安装最新的Beta版本。
Android上的菜单展示风格各异,其中用得最多且体验最好的莫过于左右滑动来显示隐藏的菜单,android-menudrawer是一个滑动式菜单实现,允许用户在应用当中实现无缝导航。该项目具有多种菜单展示效果,其中最常见的就是通过屏幕边缘拖动或点击动作栏的“向上”按钮显示。
实现功能:
20. android-flip
Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。
以上为GitHub上最受欢迎的Android开源项目TOP20,敬请期待“GitHub上最受欢迎的Android开源项目(二)”。
Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习。今天爬爬把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助。另外,如果你有比较好的项目推荐,也烦请在评论里分享出来,我会定期更新博客内容。
项目篇:
组件篇:
DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能。重写了TouchInterceptor(TI)类来提供更加优美的拖拽动画效果。
DSLV主要特性:
DragSortListView适用于带有任何优先级的列表:收藏夹、播放列表及清单等,算得上是目前Android开源实现拖动排序操作最完美的方案。
22. c-geo-opensource
c:geo是Android设备上一个简单而又强大的非官方地理寻宝客户端。与其他类似应用不同的是,c:geo不需要Web浏览器,也不需要文件输出。你可以在毫无准备的情况下,毫无后顾之忧地带上你的智能手机去进行地理寻宝。当然,你也不需要付钱,因为它是免费的。
c-geo-opensource包含了c:geo所有开源代码。
详情请参考:c:geo
23. NineOldAndroids
自Android 3.0以上的版本,SDK新增了一个android.animation包,里面的类都是跟动画效果实现相关的,通过Honeycomb API,能够实现非常复杂的动画效果。但如果开发者想在3.0以下的版本中也能使用到这套API,那么Nine Old Androids就会是你最好的选择,该API和Honeycomb API完全一样,只是改变了你使用com.nineoldandroids.XXX的入口。
该项目包含两个工程,一个是Library,即为动画效果的实现库,另一个则是Sample,是对如何使用该API的演示。开发者可以直接登陆Google Play下载安装Nine Old Androids Sample,查看演示。
详情请参考:Nine Old Androids
24. ppsspp
PPSSPP是由GC/Wii模拟器Dolphin联合创始人之一Henrik Rydgård开发的一款免费的跨平台开源模拟器,支持Windows、Linux、Mac、Android、iOS、BlackBerry 10等主流计算机与移动操作系统,可直接工作在x86、x64、ARM等CPU平台上,以GNU GPLv2许可协议发布,主要使用C++编写以提高效率和可移植性。
只要支持OpenGL ES 2.0,PPSSPP就可以在相当低规格的硬件设备上运行,包括基于ARM的手机及平板电脑。
详情请参考:PPSSPP
25. androidquery
Android-Query(AQuery)是一个轻量级的开发包,用于实现Android上的异步任务和操作UI元素,可让Android应用开发更简单、更容易,也更有趣。
26. droid-fu
Droid-Fu是一个开源的通用Android应用库,其主要目的是为了让Android开发更容易,包含有许多工具类,还有非常易用的Android组件。
Droid-Fu提供支持的领域包括:
Droid-Fu最大的优势在于它的应用生命周期帮助类,如果你正在开发一款Android应用,而它的主要任务是运行后台任务,比如从Web上抓取数据,那么,你一定会使用到Droid-Fu,不过,目前该项目在GitHub上已经停止更新维护。
详情请参考:droid-fu
27. TextSecure
TextSecure是Whisper Systems团队开发的一个Android上的加密信息客户端,旨在增强用户和企业通信的安全性,其源代码于2011年被Twitter发布在GitHub开源数据库中。
该软件允许用户将在Android设备上所有发送和接收的短信内容进行加密,还可以将加密信息发送给另一个TextSecure用户。
28. XobotOS
XobotOS是Xamarin的一个研究项目,用于将Android 4.0从Java/Dalvik移植到C#,并对移植后的性能及内存占用情况进行检测。
29. ignition
在编写Android应用时,通过提供即用组件和包含许多样板文件的实用类,ignition可以让你的Android应用快速起步。ignition涵盖的区域包括:
ignition包括三个子项目:
详情请参考:ignition Sample applications
android_page_curl是一个在Android上使用OpenGL ES实现类似书本翻页效果的示例程序。(点击链接查看视频演示)
31. asmack
说到aSmack,自然要先提提Smack。Smack API是一个完整的实现了XMPP协议的开源API库,而aSmack则是Smack在Android上的构建版本,于2013年2月初迁移到GitHub上,该资源库并不包含太多的代码,只是一个构建环境。开发者可以利用该API进行基于XMPP协议的即时消息应用程序开发。
详情请参考:asmack
In-app Billing是一项Google Play服务,能够让你在应用内进行数字内容销售,可销售的数字内容范围非常广,包括媒体文件、照片等下载内容,还包括游戏级别、药剂、增值服务和功能等虚拟内容。Android Billing Library可以实现In-app Billing的所有规范,并提供更高级的类来进行使用。
Google于2012年底正式发布了v3版Android In-app Billing,但截至目前,GitHub上的Android Billing Library还只能支持到v2版,据悉Google将于2013年初对它进行更新。
详情请参考:Google Play In-app Billing
33. Crouton
Crouton是Android上的一个可以让开发者对环境中的Toast进行替换的类,以一个应用程序窗口的方式显示,而其显示位置则由开发者自己决定。
开发者可以直接登陆Google Play下载安装Crouton Demo,查看应用演示。
34. cwac-endless
CommonsWare Android Components(CWAC)是一个开源的Android组件库,用来解决Android开发中各个方面的常见问题,每个 CWAC组件打包成一个独立的jar文件,其中就包含cwac-endless。
cwac-endless提供一个EndlessAdapter,这是一个自动分页的List,当用户浏览到List最后一行时自动请求新的数据。
详情请参考:Commons Ware
35. DiskLruCache
在Android应用开发中,为了提高UI的流畅性、响应速度,提供更高的用户体验,开发者常常会绞尽脑汁地思考如何实现高效加载图片,而DiskLruCache实现正是开发者常用的图片缓存技术之一。Disk LRU Cache,顾名思义,硬件缓存,就是一个在文件系统中使用有限空间进行高速缓存。每个缓存项都有一个字符串键和一个固定大小的值。
点击链接下载该库项目。
36. Android-SlideExpandableListView
如果你对Android提供的Android ExpandableListView并不满意,一心想要实现诸如Spotify应用那般的效果,那么SlideExpandableListView绝对是你最好的选择。该库允许你自定义每个列表项目中的ListView,一旦用户点击某个按钮,即可实现该列表项目区域滑动。
37. gauges-android
Gaug.es for Android是由gaug.es推出的一款在Android设备上对网站流量数据进行实时统计的应用。gauges-android包含了该应用的源代码,开发者可以直接登陆Google Play下载安装该应用。
38. acra
ACRA是一个能够让Android应用自动将崩溃报告以谷歌文档电子表的形式进行发送的库,旨在当应用发生崩溃或出现错误行为时,开发者可以获取到相关数据。
39. roboguice
RoboGuice是Android平台上基于Google Guice开发的一个库,可以大大简化Android应用开发的代码及一些繁琐重复的代码。给Android带来了简单、易用的依赖注入,如果你使用过spring或Guice的话,你就会知道这种编程方式是多么的便捷。
40. otto
Otto是由Square发布的一个着重于Android支持的基于Guava的强大的事件总线,在对应用程序不同部分进行解耦之后,仍然允许它们进行有效的沟通。
详情请参考:Otto
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者TrineaSwipeListView是一个Android List View实现,实现了自定义ListView单元格,可通过滑动来显示扩展面板。开发者可直接登陆Google Play下载安装其Demo应用。
42. greenDAO
greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。
greenDAO的主要设计目标:
详情请参考:greendao-orm
43. FFMpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。FFmpeg是在Linux下开发出来的,但它可以在包括Windows在内的大多数操作系统中编译。可以轻易地实现多种视频格式之间的相互转换。
而FFmpeg for Android则是可通过Android NDK直接在Android源码环境下编译的FFmpeg库。该库项目即是FFmpeg for Android的入口,开发者只需直接选择需要转换的视频文件,并设置参数,即可进行转换,发起人havlenapetr表示在未来将为其开发Android库,能够实现自动转换视频文件。
44. TweetLanes
Tweet Lanes是一个在Android4.0及更高版本的Android设备上运行的功能全面的Twitter客户端(开发者可以直接登陆Google Play下载该应用)。
该开源项目包含以下所有源代码:
这是一个简单的支持多指缩放图片的Android View类。在Android2.1及其更高版本的设备上,当你想要实现同时进行缩放操作时,可以将其作为一个标准的ImageView来使用。
使用过Path的人都应该知道,在Path主界面的左下方有一个非常有意思的菜单。菜单由一个主按钮组成,当用户点击该按钮时,就会有一连串的按钮弹出,而Satellite Menu正是该菜单的一个开源版本。
对于Satellite Menu,其项目发起人siyamed表示,这种菜单结构就像是一个星球四周围绕着许多卫星,而这也就是他为何会以Satellite Menu命名该项目的原因。
47. VitamioBundle
Vitamio是一款Android平台上的全能多媒体开发框架,凭借着其简洁易用的API接口,Vitamio赢得了全球众多开发者的青睐。目前,有许多公司的开源Vitamio项目都托管在GitHub上,而Vitamio的核心插件VitamioBundle正是其中之一。
VitamioBundle是一个独立的Android库,用于促进多媒体的使用,开发者可以很方便地将其集成到自己的项目当中。
android-ffmpeg-x264是能够让提取和构建运行在Android上、使用Android NDK最新的FFmpeg和libx264变得非常简单的一个存储库。不同于大多数其他的NDK FFmpeg构建包,它通过配置构建库,只需一个非常小的Android.mk文件即可将其包装进入一个共享库。目前,该库项目已不再更新,但在GitHub上还有着非常多的FFmpeg库,除了前面的FFmpeg,接下来我们还会继续介绍到其他FFmpeg库。
49. ArcMenu
ArcMenu是一个类似于iOS版Path 2.0菜单的Android自定义视图项目,和我们前面介绍的Satellite Menu项目类似。
对于这个项目,其发起人daCapricorn表示,iOS版Path 2.0上的用户体验非常奇妙,但其Android版本却差太多。因此,他就尝试着在Android上做出像iOS版本那样的效果,而事实也的确如此。
50. DataDroid
DataDroid是Android平台上的一个开发库,用于简化Android应用当中的数据管理,基于Android的RESTful封装发展而来。
详情请参考:datadroidlib
android-adt-templates是集成了Android开发过程中使用到的许多常用的模板,用来帮助开发者快速构建一些普通的Activity和UI模型。
当然,要想使用这些模板,还必须是Eclipse和ADT 21及其以上版本,此外还需注意的一点就是,ADT模板不管理官方支持库以外的外部依赖关系。
FFmpeg有许多不同的库,也总是会让人容易混淆,因此该项目发起人n8fr8对android-ffmpeg项目进行了全新的改变,该项目中包含着一个清晰、容易改变、静态的Android FFmpeg Creator。
该项目是基于Google Android StaggeredGridView进行修改的一个库项目,允许开发者创建一个类似于Pinterest的交错排列的GridView。开发者只需在自己的项目中将其作为一个库项目添加到workspace中即可直接使用。
54. robospice
RoboSpice是Repo的开源Android库,能够让编写异步网络请求变得非常简单。它专门用于网络请求,通过使用Spring Android或者Google Http
Client等扩展模块可支持REST请求。
如果想要了解更多,不妨点击链接查看RoboSpice大图,让你30秒即可完全了解RoboSpice。如果想要立即使用,则可以直接进入WiKi或RoboSpice-samples页面。
55. EventBus
当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。如何优雅地解决这个问题?这时候,就需要使用到EventBus。
EventBus是GreenRobot出品的Android系统的一个Event Bus类库,使用起来和之前我们所介绍的Square的Otto差不多,都是用来简化应用组件之间的通信。
延伸阅读:EventBus和Otto使用介绍
56. commandergenius
commandergenius是SDL库的端口,在project/jni/application目录下还包含有几个个人游戏的源代码或补丁。
57. android-rss
Android RSS是Android平台上RSS 2.0阅读软件的一个轻量级Android库。
详情请参考:Code.Google
58. OpenCV-Android
OpenCV-Android是一个将OpenCV移到Android手机平台的开源项目,该项目使用OpenCV最新的一个分支并利用一个改良过的Android
NDK进行构建。
如果想要使用OpenCV-Android,必须先下载并安装Android SDK
1.6(或其更高版本)和NDK r5,除此之外,还必须具备:
59. RESTProvider
RESTProvider旨在让访问REST服务(或任何主要的HTTP调用的网络数据格式)更容易,并将其缓存到本地的一个SQLite数据库中,允许脱机使用。可自动解析RESTful API,并将其响应到Android的一个Provider中。
在开源ImageFilterForAndroid中拥有许多丰富的图片效果,是由来自国内的代震军发起的一个开源项目。除了Android平台,还有Windows Phone和iOS移动平台,三个平台源码同步。
ImageFilter库图片效果对比:
详情请参考:代震军BLOG
Android-Image-Cache是一个能够自动判断从内存还是网络获取图片、缓存可以自动回收、自动判断如何有效地生成并检索各种尺寸缩略图的图像download-and-cacher。
主要特点如下:
62. FFmpeg-Android
为Android neon、armv7、vfp、armv6及用于Android的VPlayer构建FFmpeg。
roman10-android-tutorial包含了android tutorial的所有源代码。
64. tape
Tape是Square推出的Android和Java的一组队列关系类。
详情请参考:**Square.GitHub**
65.
AndroidSideMenu
AndroidSideMenu能够让你轻而易举地创建侧滑菜单。需要注意的是,该项目自身并不提供任何创建菜单的工具,因此,开发者可以自由创建内部菜单。
66. Android-AppMsg
Android-AppMsg是基于Toast消息提示和Cyril
Mottier的“The making of Prixing #4: in-layout
notifications”而来的一个布局内通知实现。
开发者可以直接登陆Google Play下载其示例应用。
67. proxydroid
ProxyDroid是Android上的一个全局代理应用,遵循GPLv3协议,可以帮助你设置Android设备上的代理。proxydroid项目包含了ProxyDroid所有开放源代码。
68. bypass
Bypass可以跳过HTML,直接在Android和iOS上使用Markdown并进行渲染。Markdown是一种轻量级的标记语言,可以实现文本到HTML的转换。
69. OnionKit
OnionKit是一个可以通过提供多种路径来提高移动应用网络安全的Android库项目。
该库具体提供:
70. android-ffmpeg
如果想要实现Android FFmpeg编译,必须下载安装Android NDK,在开始编译之前,还必须更新FFmpeg库。
71.
AndroidUsbCamera
Android Usb Camera是一款可以在Linux电脑上将Android手机直接当摄像头使用的客户端软件。先在手机上安装USB驱动,再安装该客户端软件,然后再在手机上安装usbwebcam.apk程序,打开USB调试模式并运行usbwebcam,通过USB线将电脑和手机相连接即可在PC上直接使用Android手机充当摄像头。
72. Droidex
Droidex可以将开发者附加的Android设备的屏幕内容复制到你的开发设备屏幕上。通常,如果你使用DroidEx来进行演示可谓是事半功倍,因为你可以直接将一台Android设备与笔记本或投影仪相连,而客户也可以通过这些设备来查看Android设备上的内容。
此外,Droidex还可以用来演示那些不方便通过模拟器演示的内容,比如GPS或力口速器。
73. andmake
andmake是Android的CMake工具链文件。CMake是一个开源的跨平台自动化构建系统,可以编译源代码、制作程序库、产生适配器,还可以用任意的顺序构建可执行文件。
74. ScreenCap
ScreenCap是Android原生自带的截屏工具,通过调用底层,采取后台截屏的方式实现截屏。
GitHub上受开发者欢迎的Android开源项目并不仅仅止于此,还有很多,并且还有许多同类开源项目,如果你感兴趣的话,可以直接登陆GitHub进行更加深入的学习了解。至此,GitHub上最受欢迎的Android开源项目盘点就全部结束了。
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者TrineaGitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。为此,CSDN特整理了在GitHub平台上最受欢迎的Android及iOS开源项目,以飨开发者。
下面,就让我们一起来看看,在GitHub平台上,究竟有哪些Android开源项目最火,也最受开发者欢迎。
ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。
对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局。能够让开发者轻松开发一款带动作栏(Action bar)的应用,并且适用于Android 2.x及其以上所有版本。
详情请参考:ActionBarSherlock
Facebook SDK for Android是一个开源库,允许开发者将Facebook集成到所开发的Android应用中。
如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Facebook Developers查看。
3. SlidingMenu(SlidingMenu Demos)
SlidingMenu是一个开源的Android库,能够让开发者轻松开发一款应用,实现类似于Google+、Youtube和Facebook应用中非常流行的滑动式菜单。
使用SlidingMenu的Android应用:
4. cocos2d-x
在移动开发领域,将Cocos2D-X用于主流iOS/Android游戏开发的公司、开发团队多不胜数。cocos2d-x是一个开源的支持多平台的2D游戏框架,使用C++开发,基于cocos2d-iphone,在MIT许可证下发布。主分支在GitHub上使用OpenGL ES 2.0渲染,而旧版gles11分支则使用OpenGL ES 1.1渲染。
支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。支持C++、Lua、JavaScript编程语言。
5. android
GitHub Android App是GitHub开源的Android客户端,支持Issues、Gists,并集成了新闻Feed,能够让你及时跟进组织及关注的开发者、库等。同时,该应用还提供了一个用户快速访问你所创建、监控及发布issue的面板,可查看并将问题加入到收藏夹,可对标签、里程碑和任务进行过滤配置。
android资源库包含了GitHub Android App的所有源代码。
ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面。
兼容Android支持库的ViewPager及ActionBarSherlock,最初是基于Patrik Åkerfeldt的ViewFlow,开发者可以直接登陆Google Play下载该项目的演示应用。
7. MonoGame
MonoGame是一个Microsoft XNA 4.x Framework的开源跨平台实现。用于让XNA开发者将他们在Xbox 360、Windows & Windows Phone上开发的游戏移植到iOS、Android、Mac OS X、Linux及Windows 8 Metro上,目前,PlayStation Mobile & Raspberry PI的开发正在进行中。
详情请参考:MonoGame
该项目用于为Android提供一个可重用的下拉刷新部件。它最初来源于Johan Nilsson的库(主要是图形、字符串和动画),但这些后来都已被取代。
android-async-http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。
10. Android-Universal-Image-Loader
Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。
Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。
11. GreenDroid
GreenDroid最初是由Cyril Mottier发起,是一个Android的UI开发类库,能够让UI开发更加简便,并且在应用中始终保持一致。
详情请参考:Cyril Mottier's Blog
12. Anki-Android
AnkiDroid是一个免费、开源的Android的闪存应用,可直接从Google Play进行下载。
详情请参考:ankidroid
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当开发者需要突出展现用户行为或在全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,且系统能够很好地根据不同的屏幕配置来适应操作栏的外观。
Action bar的主要目的:
14. android-viewflow
android-viewflow是Android平台上的一个视图切换的效果库,ViewFlow相当于Android UI部件提供水平滚动的ViewGroup,使用Adapter进行条目绑定。
当使用Android地图外部库(com.google.android.maps)时,android-mapviewballoons会提供一个简单的方式来对地图覆盖进行标注,就是一个简单的信息气泡。
它由BalloonOverlayView组成,是一个代表显示你的MapView及BalloonItemizedOverlay的气泡的视图,BalloonItemizedOverlay是ItemizedOverlay的一个抽象扩展。
16. PushSharp
一个向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone和Windows 8设备发送推送通知的服务器端库。
Android Annotations是一个开源的框架,用于加速 Android应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性。
18. HockeyKit
Hockey是一个iOS Ad-Hoc自动更新框架。苹果App Store中的所有App都可以使用它,它能够显著地提高Beta测试的整个过程,分为两部分:服务器和客户端框架。服务器组件需要所有脚本,但在没有客户端库的情况下,也可以单独工作。它提供一个Web接口,Beta测试者可以使用它来安装最新的AdHoc配置文件,也可以直接在设备上通过Safari安装最新的Beta版本。
Android上的菜单展示风格各异,其中用得最多且体验最好的莫过于左右滑动来显示隐藏的菜单,android-menudrawer是一个滑动式菜单实现,允许用户在应用当中实现无缝导航。该项目具有多种菜单展示效果,其中最常见的就是通过屏幕边缘拖动或点击动作栏的“向上”按钮显示。
实现功能:
20. android-flip
Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。
以上为GitHub上最受欢迎的Android开源项目TOP20,敬请期待“GitHub上最受欢迎的Android开源项目(二)”。
Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习。今天爬爬把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助。另外,如果你有比较好的项目推荐,也烦请在评论里分享出来,我会定期更新博客内容。
项目篇:
组件篇:
DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能。重写了TouchInterceptor(TI)类来提供更加优美的拖拽动画效果。
DSLV主要特性:
DragSortListView适用于带有任何优先级的列表:收藏夹、播放列表及清单等,算得上是目前Android开源实现拖动排序操作最完美的方案。
22. c-geo-opensource
c:geo是Android设备上一个简单而又强大的非官方地理寻宝客户端。与其他类似应用不同的是,c:geo不需要Web浏览器,也不需要文件输出。你可以在毫无准备的情况下,毫无后顾之忧地带上你的智能手机去进行地理寻宝。当然,你也不需要付钱,因为它是免费的。
c-geo-opensource包含了c:geo所有开源代码。
详情请参考:c:geo
23. NineOldAndroids
自Android 3.0以上的版本,SDK新增了一个android.animation包,里面的类都是跟动画效果实现相关的,通过Honeycomb API,能够实现非常复杂的动画效果。但如果开发者想在3.0以下的版本中也能使用到这套API,那么Nine Old Androids就会是你最好的选择,该API和Honeycomb API完全一样,只是改变了你使用com.nineoldandroids.XXX的入口。
该项目包含两个工程,一个是Library,即为动画效果的实现库,另一个则是Sample,是对如何使用该API的演示。开发者可以直接登陆Google Play下载安装Nine Old Androids Sample,查看演示。
详情请参考:Nine Old Androids
24. ppsspp
PPSSPP是由GC/Wii模拟器Dolphin联合创始人之一Henrik Rydgård开发的一款免费的跨平台开源模拟器,支持Windows、Linux、Mac、Android、iOS、BlackBerry 10等主流计算机与移动操作系统,可直接工作在x86、x64、ARM等CPU平台上,以GNU GPLv2许可协议发布,主要使用C++编写以提高效率和可移植性。
只要支持OpenGL ES 2.0,PPSSPP就可以在相当低规格的硬件设备上运行,包括基于ARM的手机及平板电脑。
详情请参考:PPSSPP
25. androidquery
Android-Query(AQuery)是一个轻量级的开发包,用于实现Android上的异步任务和操作UI元素,可让Android应用开发更简单、更容易,也更有趣。
26. droid-fu
Droid-Fu是一个开源的通用Android应用库,其主要目的是为了让Android开发更容易,包含有许多工具类,还有非常易用的Android组件。
Droid-Fu提供支持的领域包括:
Droid-Fu最大的优势在于它的应用生命周期帮助类,如果你正在开发一款Android应用,而它的主要任务是运行后台任务,比如从Web上抓取数据,那么,你一定会使用到Droid-Fu,不过,目前该项目在GitHub上已经停止更新维护。
详情请参考:droid-fu
27. TextSecure
TextSecure是Whisper Systems团队开发的一个Android上的加密信息客户端,旨在增强用户和企业通信的安全性,其源代码于2011年被Twitter发布在GitHub开源数据库中。
该软件允许用户将在Android设备上所有发送和接收的短信内容进行加密,还可以将加密信息发送给另一个TextSecure用户。
28. XobotOS
XobotOS是Xamarin的一个研究项目,用于将Android 4.0从Java/Dalvik移植到C#,并对移植后的性能及内存占用情况进行检测。
29. ignition
在编写Android应用时,通过提供即用组件和包含许多样板文件的实用类,ignition可以让你的Android应用快速起步。ignition涵盖的区域包括:
ignition包括三个子项目:
详情请参考:ignition Sample applications
android_page_curl是一个在Android上使用OpenGL ES实现类似书本翻页效果的示例程序。(点击链接查看视频演示)
31. asmack
说到aSmack,自然要先提提Smack。Smack API是一个完整的实现了XMPP协议的开源API库,而aSmack则是Smack在Android上的构建版本,于2013年2月初迁移到GitHub上,该资源库并不包含太多的代码,只是一个构建环境。开发者可以利用该API进行基于XMPP协议的即时消息应用程序开发。
详情请参考:asmack
In-app Billing是一项Google Play服务,能够让你在应用内进行数字内容销售,可销售的数字内容范围非常广,包括媒体文件、照片等下载内容,还包括游戏级别、药剂、增值服务和功能等虚拟内容。Android Billing Library可以实现In-app Billing的所有规范,并提供更高级的类来进行使用。
Google于2012年底正式发布了v3版Android In-app Billing,但截至目前,GitHub上的Android Billing Library还只能支持到v2版,据悉Google将于2013年初对它进行更新。
详情请参考:Google Play In-app Billing
33. Crouton
Crouton是Android上的一个可以让开发者对环境中的Toast进行替换的类,以一个应用程序窗口的方式显示,而其显示位置则由开发者自己决定。
开发者可以直接登陆Google Play下载安装Crouton Demo,查看应用演示。
34. cwac-endless
CommonsWare Android Components(CWAC)是一个开源的Android组件库,用来解决Android开发中各个方面的常见问题,每个 CWAC组件打包成一个独立的jar文件,其中就包含cwac-endless。
cwac-endless提供一个EndlessAdapter,这是一个自动分页的List,当用户浏览到List最后一行时自动请求新的数据。
详情请参考:Commons Ware
35. DiskLruCache
在Android应用开发中,为了提高UI的流畅性、响应速度,提供更高的用户体验,开发者常常会绞尽脑汁地思考如何实现高效加载图片,而DiskLruCache实现正是开发者常用的图片缓存技术之一。Disk LRU Cache,顾名思义,硬件缓存,就是一个在文件系统中使用有限空间进行高速缓存。每个缓存项都有一个字符串键和一个固定大小的值。
点击链接下载该库项目。
36. Android-SlideExpandableListView
如果你对Android提供的Android ExpandableListView并不满意,一心想要实现诸如Spotify应用那般的效果,那么SlideExpandableListView绝对是你最好的选择。该库允许你自定义每个列表项目中的ListView,一旦用户点击某个按钮,即可实现该列表项目区域滑动。
37. gauges-android
Gaug.es for Android是由gaug.es推出的一款在Android设备上对网站流量数据进行实时统计的应用。gauges-android包含了该应用的源代码,开发者可以直接登陆Google Play下载安装该应用。
38. acra
ACRA是一个能够让Android应用自动将崩溃报告以谷歌文档电子表的形式进行发送的库,旨在当应用发生崩溃或出现错误行为时,开发者可以获取到相关数据。
39. roboguice
RoboGuice是Android平台上基于Google Guice开发的一个库,可以大大简化Android应用开发的代码及一些繁琐重复的代码。给Android带来了简单、易用的依赖注入,如果你使用过spring或Guice的话,你就会知道这种编程方式是多么的便捷。
40. otto
Otto是由Square发布的一个着重于Android支持的基于Guava的强大的事件总线,在对应用程序不同部分进行解耦之后,仍然允许它们进行有效的沟通。
详情请参考:Otto
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者TrineaSwipeListView是一个Android List View实现,实现了自定义ListView单元格,可通过滑动来显示扩展面板。开发者可直接登陆Google Play下载安装其Demo应用。
42. greenDAO
greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。
greenDAO的主要设计目标:
详情请参考:greendao-orm
43. FFMpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。FFmpeg是在Linux下开发出来的,但它可以在包括Windows在内的大多数操作系统中编译。可以轻易地实现多种视频格式之间的相互转换。
而FFmpeg for Android则是可通过Android NDK直接在Android源码环境下编译的FFmpeg库。该库项目即是FFmpeg for Android的入口,开发者只需直接选择需要转换的视频文件,并设置参数,即可进行转换,发起人havlenapetr表示在未来将为其开发Android库,能够实现自动转换视频文件。
44. TweetLanes
Tweet Lanes是一个在Android4.0及更高版本的Android设备上运行的功能全面的Twitter客户端(开发者可以直接登陆Google Play下载该应用)。
该开源项目包含以下所有源代码:
这是一个简单的支持多指缩放图片的Android View类。在Android2.1及其更高版本的设备上,当你想要实现同时进行缩放操作时,可以将其作为一个标准的ImageView来使用。
使用过Path的人都应该知道,在Path主界面的左下方有一个非常有意思的菜单。菜单由一个主按钮组成,当用户点击该按钮时,就会有一连串的按钮弹出,而Satellite Menu正是该菜单的一个开源版本。
对于Satellite Menu,其项目发起人siyamed表示,这种菜单结构就像是一个星球四周围绕着许多卫星,而这也就是他为何会以Satellite Menu命名该项目的原因。
47. VitamioBundle
Vitamio是一款Android平台上的全能多媒体开发框架,凭借着其简洁易用的API接口,Vitamio赢得了全球众多开发者的青睐。目前,有许多公司的开源Vitamio项目都托管在GitHub上,而Vitamio的核心插件VitamioBundle正是其中之一。
VitamioBundle是一个独立的Android库,用于促进多媒体的使用,开发者可以很方便地将其集成到自己的项目当中。
android-ffmpeg-x264是能够让提取和构建运行在Android上、使用Android NDK最新的FFmpeg和libx264变得非常简单的一个存储库。不同于大多数其他的NDK FFmpeg构建包,它通过配置构建库,只需一个非常小的Android.mk文件即可将其包装进入一个共享库。目前,该库项目已不再更新,但在GitHub上还有着非常多的FFmpeg库,除了前面的FFmpeg,接下来我们还会继续介绍到其他FFmpeg库。
49. ArcMenu
ArcMenu是一个类似于iOS版Path 2.0菜单的Android自定义视图项目,和我们前面介绍的Satellite Menu项目类似。
对于这个项目,其发起人daCapricorn表示,iOS版Path 2.0上的用户体验非常奇妙,但其Android版本却差太多。因此,他就尝试着在Android上做出像iOS版本那样的效果,而事实也的确如此。
50. DataDroid
DataDroid是Android平台上的一个开发库,用于简化Android应用当中的数据管理,基于Android的RESTful封装发展而来。
详情请参考:datadroidlib
android-adt-templates是集成了Android开发过程中使用到的许多常用的模板,用来帮助开发者快速构建一些普通的Activity和UI模型。
当然,要想使用这些模板,还必须是Eclipse和ADT 21及其以上版本,此外还需注意的一点就是,ADT模板不管理官方支持库以外的外部依赖关系。
FFmpeg有许多不同的库,也总是会让人容易混淆,因此该项目发起人n8fr8对android-ffmpeg项目进行了全新的改变,该项目中包含着一个清晰、容易改变、静态的Android FFmpeg Creator。
该项目是基于Google Android StaggeredGridView进行修改的一个库项目,允许开发者创建一个类似于Pinterest的交错排列的GridView。开发者只需在自己的项目中将其作为一个库项目添加到workspace中即可直接使用。
54. robospice
RoboSpice是Repo的开源Android库,能够让编写异步网络请求变得非常简单。它专门用于网络请求,通过使用Spring Android或者Google Http
Client等扩展模块可支持REST请求。
如果想要了解更多,不妨点击链接查看RoboSpice大图,让你30秒即可完全了解RoboSpice。如果想要立即使用,则可以直接进入WiKi或RoboSpice-samples页面。
55. EventBus
当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。如何优雅地解决这个问题?这时候,就需要使用到EventBus。
EventBus是GreenRobot出品的Android系统的一个Event Bus类库,使用起来和之前我们所介绍的Square的Otto差不多,都是用来简化应用组件之间的通信。
延伸阅读:EventBus和Otto使用介绍
56. commandergenius
commandergenius是SDL库的端口,在project/jni/application目录下还包含有几个个人游戏的源代码或补丁。
57. android-rss
Android RSS是Android平台上RSS 2.0阅读软件的一个轻量级Android库。
详情请参考:Code.Google
58. OpenCV-Android
OpenCV-Android是一个将OpenCV移到Android手机平台的开源项目,该项目使用OpenCV最新的一个分支并利用一个改良过的Android
NDK进行构建。
如果想要使用OpenCV-Android,必须先下载并安装Android SDK
1.6(或其更高版本)和NDK r5,除此之外,还必须具备:
59. RESTProvider
RESTProvider旨在让访问REST服务(或任何主要的HTTP调用的网络数据格式)更容易,并将其缓存到本地的一个SQLite数据库中,允许脱机使用。可自动解析RESTful API,并将其响应到Android的一个Provider中。
在开源ImageFilterForAndroid中拥有许多丰富的图片效果,是由来自国内的代震军发起的一个开源项目。除了Android平台,还有Windows Phone和iOS移动平台,三个平台源码同步。
ImageFilter库图片效果对比:
详情请参考:代震军BLOG
Android-Image-Cache是一个能够自动判断从内存还是网络获取图片、缓存可以自动回收、自动判断如何有效地生成并检索各种尺寸缩略图的图像download-and-cacher。
主要特点如下:
62. FFmpeg-Android
为Android neon、armv7、vfp、armv6及用于Android的VPlayer构建FFmpeg。
roman10-android-tutorial包含了android tutorial的所有源代码。
64. tape
Tape是Square推出的Android和Java的一组队列关系类。
详情请参考:**Square.GitHub**
65.
AndroidSideMenu
AndroidSideMenu能够让你轻而易举地创建侧滑菜单。需要注意的是,该项目自身并不提供任何创建菜单的工具,因此,开发者可以自由创建内部菜单。
66. Android-AppMsg
Android-AppMsg是基于Toast消息提示和Cyril
Mottier的“The making of Prixing #4: in-layout
notifications”而来的一个布局内通知实现。
开发者可以直接登陆Google Play下载其示例应用。
67. proxydroid
ProxyDroid是Android上的一个全局代理应用,遵循GPLv3协议,可以帮助你设置Android设备上的代理。proxydroid项目包含了ProxyDroid所有开放源代码。
68. bypass
Bypass可以跳过HTML,直接在Android和iOS上使用Markdown并进行渲染。Markdown是一种轻量级的标记语言,可以实现文本到HTML的转换。
69. OnionKit
OnionKit是一个可以通过提供多种路径来提高移动应用网络安全的Android库项目。
该库具体提供:
70. android-ffmpeg
如果想要实现Android FFmpeg编译,必须下载安装Android NDK,在开始编译之前,还必须更新FFmpeg库。
71.
AndroidUsbCamera
Android Usb Camera是一款可以在Linux电脑上将Android手机直接当摄像头使用的客户端软件。先在手机上安装USB驱动,再安装该客户端软件,然后再在手机上安装usbwebcam.apk程序,打开USB调试模式并运行usbwebcam,通过USB线将电脑和手机相连接即可在PC上直接使用Android手机充当摄像头。
72. Droidex
Droidex可以将开发者附加的Android设备的屏幕内容复制到你的开发设备屏幕上。通常,如果你使用DroidEx来进行演示可谓是事半功倍,因为你可以直接将一台Android设备与笔记本或投影仪相连,而客户也可以通过这些设备来查看Android设备上的内容。
此外,Droidex还可以用来演示那些不方便通过模拟器演示的内容,比如GPS或力口速器。
73. andmake
andmake是Android的CMake工具链文件。CMake是一个开源的跨平台自动化构建系统,可以编译源代码、制作程序库、产生适配器,还可以用任意的顺序构建可执行文件。
74. ScreenCap
ScreenCap是Android原生自带的截屏工具,通过调用底层,采取后台截屏的方式实现截屏。
GitHub上受开发者欢迎的Android开源项目并不仅仅止于此,还有很多,并且还有许多同类开源项目,如果你感兴趣的话,可以直接登陆GitHub进行更加深入的学习了解。至此,GitHub上最受欢迎的Android开源项目盘点就全部结束了。
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 网上有很多开源的安卓代码库很好用,对于刚学习安卓的童鞋亦或者老鸟都是很好的学习对象。
我平时有关注开源代码的习惯,这么多年也搜集了不少精彩的源码。
到后来发现自己手机里装的都是几百个demo app,删又不舍得删,不删又占资源, 于是就准备搞了个23code应用,里面汇集了我精心整理的应用,
此后每周应该都会更新。敬请期待。。。
百度下载链接
谷歌市场下载
当前版本集成了68个开源示例。
更新日志
v1.0 添加如下
HoloColorPicker
Square-progressbar
ParallaxScrollView
JazzyViewPager
CircularProgressBar
LeftLockedGallery
GPUImage
Bootstrap
SwipToDismiss
GifView
LockPatternGenerator
NewQuickAction3D
SlidingDrawer
SwitchButton
TabCarouselDemo
ActionsContentView
ArcMenu
【11月30号】v1.1 添加如下:
ProgressWheel,
Movies-demo,
SlideExpanableListView,
XlistView,
Android-Universal-Image-Loader, Cardslib,
Cardsui
【12月2号】v1.2 添加如下
ProgressWheel,
Movies-demo,
SlideExpandableListView,
XlistView,
Universal-Image-Loader,
Cardsui,
CardsLib,
PinnedSectionList,
HoloGraphLibrary,
AChartEngine,
QuickScroll,
ListViewAnimations,
MenuDrawer,
ViewPagerIndicator,
PhotoView,
Android-ViewBradger,
RangeBar,
ProgressButton,
PagerSlidingTabStrip.
ActionBar-PullToRefresh,
Cropper,
ExpandingCells,
InsertingCells,
NewPopupMenu,
RangeSeekBar,
HanselAndGretel,
PagedDragDropGrid,
QuickReturnListView,
WizardPager
【12月9号】添加记录如下:
NoboringActionBar,
StickGridHeaders,
MessageBar,
AndroidOpenGLESLessons,
SuperToasts,
SmoothProgressBar,
ColorArt,
FadingActionBar,
FlipImageView,
DatetimePicker,
Satelitemenu
【12月18号】添加如下:
Android-pulltorefresh
NineOldAndroid
GlowPadView
CustomShapeImageView
ShareEveryWhere
RoundImageView
AutoScaleTextView
IconicDroid
Radial-menu-widget
android-wheel
androidwheel
ChipsTextFields
妈妈再也不用担心我当程序员啦
way
http://blog.csdn.net/way_ping_li
老罗
http://blog.csdn.net/column/details/androidluo.html
李宁
robin
http://blog.csdn.net/hudashi
guolin
http://blog.csdn.net/sinyu890807?viewmode=list
wangli
UI设计
http://www.cnblogs.com/playing/category/286537.html
UI进阶
http://blog.csdn.net/column/details/uidev.html
时之沙
张国威
http://blog.csdn.net/hellogv
张兴业
夏安明
http://blog.csdn.net/xiaanming
黄俊东
http://blog.csdn.net/hjd_love_zzt
四方城
http://blog.csdn.net/kesenhoo
柳志超
http://liuzhichao.com/archives
stonecao
短裤党
http://gundumw100.iteye.com/
左潇龙
http://www.cnblogs.com/zuoxiaolong/p/pattern26.html
引路蜂
云在千峰
农民伯伯
http://www.cnblogs.com/over140/
玄机逸士
http://blog.csdn.net/pathuang68/article/category/784453
谷歌的代码
http://code.google.com/intl/zh-CN/
EOE归类
http://www.eoeandroid.com/topic-tag.html
qinjuning
http://blog.csdn.net/qinjuning
jj120522
http://blog.csdn.net/jj120522
IT-Homer
http://blog.csdn.net/sunboy_2050
傲慢的上校
http://blog.csdn.net/aomandeshangxiao
FireOfStar
http://blog.csdn.net/think_soft
浪人的星空
http://blog.csdn.net/hitlion2008
nkmnkm的专栏
深入Android
http://www.cnblogs.com/duguguiyu/category/112850.html
google的bug
http://code.google.com/p/android/issues/detail?id=30767
stackoverflow
http://stackoverflow.com/questions/tagged/android
ACE(照片开源)
http://blog.csdn.net/ACE1985/article/category/944280/1
Android_Tutor
http://blog.csdn.net/Android_Tutor?viewmode=contents
Android开源项目
http://luckerme.com/archives/41.html
WEI
http://blog.csdn.net/flowingflying/article/category/790538
Mars
http://www.mars-droid.com/bbs/forum.php
JNI教程
http://blog.csdn.net/zhangjie201412/article/category/1086150
API Demos
http://blog.csdn.net/column/details/mapdigitapidemos.html
EOE API指南
http://guide.eoeandroid.com/
Android中文API
http://www.cnblogs.com/over140/archive/2010/10/26/1861234.html
Android学习指南
http://android.yaohuiji.com/about
Android Dev Guide
http://blog.csdn.net/iamlazybone/article/details/6042149
同文馆
http://www.tongwenguan.com/
双子座
http://my.oschina.net/plumsoft/blog?catalog=145903
OC语法
http://blog.csdn.net/column/details/objectivec.html
code4app
http://code4app.com/
第三方插件
http://www.oschina.net/question/213217_39760
IOS5编程学习
http://www.entlib.net/?page_id=2091
Nono_Love_Lilith
http://blog.csdn.net/Nono_Love_Lilith
一:Java知识
1、进制转换
2、Java基本数据类型
面向对象相关知识
3、类、接口、抽象类
this关键字、static关键字、final关键字
方法的参数传递机制
Java垃圾回收机制
四种内部类的实现方式
方法重写(override)与重载(overload)的联系与区别通过多态实现程序代码的松耦合
Java 异常体系详解(checked exception 与 unchecked exception)
JDK 5.0 新特性(泛型、枚举、可变参数、增强的 for 循环、静态导入等)
Java Annotation(使用系统内置 Annotation、自定义Annotation、Annotation的继承等)
Java多线程机制详解(锁、synchronized关键字、sleep()方法、wait()方法、notify() 、notifyAll()方法的意义与联系)
Java线程池的内部实现
Java定时任务内部实现
Java I/O编程(装饰模式详解)
Java网络编程基础知识(Socket、URL、URLConnection、ServerSocket等)
TCP与 UDP的联系与区别
Java Collection API(Collection、List、Set、Map、ArrayList、LinkedList、 Vector、 HashSet、 TreeSet、 HashMap与TreeMap等)区别,适用场景
常用设计模式(工厂方法模式、观察者模式、策略模式、装饰模式、模板方法模式、命令模式等的原理与应用)
Java NIO详解
java.util.concurrent 并发包的应用(ConcurrentHashMap核心源代码分析、ThreadPoolExecutor、FutureTask、Semaphore、Condition、ReentrantReadWriteLock等接口与类的深度分析)
基于 JDK 1.4 锁的并发机制与基于 JDK 5.0并发包的同步与并发机制的比较与分析
序列化与反序列化
正则表达式的应用
Java动态代理与反射机制
Java代码的执行机制
源代码编译机制
类加载与执行机制
JVM内存管理(内存空间、内存分配、内存回收)
使用 JConsole、JVisualVM及 JMap等查看内存的使用状况
分析程序执行的过程
JVM线程资源同步及交互机制
线程交互机制与状态分析
Java文件操作相关,递归删除,递归读取
JDBC相关知识,步骤,连接操作,数据库连接池(详解 Apache DBCP数据库连接池)
移位操作 (左移n位==乘以2的n次幂) (右移n位==除以2的n次幂)
二、算法
各种排序算法:快速排序、归并排序、插入排序等等
斐波切纳函数
二分查找
全排列
二叉树的遍历
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)
字符串反转
前缀树
最大堆,最小堆
Hash算法及HashMap算法
ConcurrentLinkedHashMap(LRU)
BloomFilter
LIRS算法 LIRS的基本思想是对访问的数据块进行分类,一部分为hot数据块,一部分为cold数据块。对于hot数据块我们可以分配90%以上的cache给它们。而对于cold数据块给它们分配10%。
从LIRS算法的描述来看,可以理解为两个LRU队列的组合,利用cold缓冲区来保护Hot缓冲区,提高了进入hot缓冲区的门槛,阻止hot缓冲区频繁地变化。
三、数据库
MySQL存储引擎
mysql优化
mysql HA解决方案
sql语句优化
NoSQL相关
四、文件系统
Linux主流文件系统
EXT3与EXT4文件系统
主流分布式文件系统分析与对比
分布式文件系统
五、系统相关
共享内存实现机制
mmap的实现原理与机制
copy on write技术
zero copy技术
六、网络相关
OSI七层网络模型
TCP/IP交互流程
HTTP访问流程
七、大型网站架构
负载均衡技术及其原理
智能DNS解析,原理,实现方案
squid web加速及缓存技术
网页静态化
淘宝技术委员会是由淘宝技术部高级技术人员组成的一个组织,共分为Java分会、C/C++分会、算法分会:数据分会:UED分会、测试分会、系统分会七个分会。
淘宝技术委员会的愿景是淘宝成为技术人才向往的乐土,高级技术人员的发源地;技术委员会的使命是帮助淘宝建立业界一流的技术团队。同时,技术委员会也是技术人员间交流技术和想法的一个平台。
淘宝技术博客:
数据分会 淘宝DBA http://www.taobaodba.com/
UED分会 http://ued.taobao.com/
测试分会 套测试:http://www.taobaotest.com/
==========Java牛人=========================================
Java牛人:
华黎(曾宪杰):淘宝技术委员会JAVA分会会长。
blog: http://blogjava.net/vanadies10
一粟(朱鴻)、
blog: http://hugozhu.myalert.info/
weibo: http://weibo.com/hugozhu
玄难(墙辉)、
孤城(李杰)、
范禹(吴泽明)、
毕玄(林昊)、
blog: http://www.blogjava.net/BlueDavy
放翁(岑文初)、
blog: http://blog.csdn.net/cenwenchu79
weibo: http://weibo.com/fangweng
空望(魏虎)、
weibo:http://weibo.com/skyhope
==============C++牛人======================================
C++牛人:
立忠(张立中)、
五福(沈加翔)、
本空(徐绿兵)、
前,在电子部就职1年,第一次接触到互联网;在新浪就职9年,转变为互联网建设的参与者,先后负责过新浪的即时通讯软件、财经频道股票数 据平台、企业广场后台、爱问引擎等项目的设计和开发。
熟悉C/C++、Java、Perl,在网络通信、分布式计算、搜索技术有一定经验,喜欢脚 本语言和混合语言编程,对面向对象技术了解深刻,追求代码的可读性、扩展性和可维护性。
在淘宝的经历:
07年6月加入阿里妈妈,负责广告数据引擎的建设和维护,期间负责对引擎的代码做了一次大的重构,引擎、数据更新、数据转存的框架一直沿用至淘宝 直通车引擎;
08年9月转入大淘宝,进入新成立的广告架构技术部,作为和广告引擎技术相关的架构师,参与了直通车2.0引擎架构设计、夸父通讯中间件的架构设 计;
09年10月开始成为代码质量组成员,编写了C/C++代码规范,为推进C++单元测试而努力。
多隆(蔡景现)
========算法牛人==================================
算法牛人:
鬼脚七(文德)、
精忍(吴凯)、
铁相(吴雪军)、
青峰(王志榮)、
========数据(库)牛人=============================
数据(库)牛人:
正祥(阳振坤)、
泽远(王磊)、
云铮(张清)、
图海(王勇)、
UED牛人:
小马(赵泽欣)、
清羽(周骞)、
李牧(李穆)、
玉伯 (王保平)、
weibo: http://weibo.com/lifesinger
===========测试牛人==============================================
测试牛人:
公直(黄利)、
丘虚(郑昌丘)、
元逍(李中杰)、
2004年毕业于清华大学,后一直在IBM中国研究院工作,参与的项目包括Web Services/业务流程/SOA测试、测试计划和优化、软件应用生命周期管理等。
鹤云(马治国)、
===============系统牛人==========================================
系统牛人(硬件、网络、OS等):
周明(周明)、
伯松(李勇)、
blog: http://blog.coly.li/?from=yufeng
正明(章文嵩)、
weibo: http://weibo.com/wensong8
2000年在国防科技大学获得博士学位。2000年共同创办集群网络,2003年共同创办Purplecomm,2009年9月加入淘宝。是Linux内核的开发者,著名的Linux集群项目--LVS (Linux Virtual Server)的创始人和主要开发人员,LVS集群代码已在Linux 2.4和2.6的官方内核中,并得到广泛的应用。在架构大型系统、系统软件开发、Linux操作系统、网络和软件开发管理上有着丰富的经验。他一直在自由软件的开发上花费时间,并积极推动开源活动在中国的发展。 在淘宝的经历:主要负责基础核心软件研发、推进网络软硬件方面的性能优化、搭建下一代高可扩展、低碳、低成本的淘宝电子商务基础设施。
康伯(高山渊)
2000年毕业于北京化工大学生物工程专业,之后北漂8年,做过销售、IT支持、互联网接入等工作,2004年开始进入互联网运维行业,2007年加入中国雅虎,2008年转入淘宝,现在负责淘宝CDN运维、云计算运维、虚拟化、系统优化等方面工作
对于GitHub上开源项目的整理,很多博客都有写过。但是我觉得有些博客整理的开源项目过多,让我们看的眼花缭乱,以至于我们不知道该用哪一个好。所以为了更好的有利于初学者的学习,我从实战和易用性的角度重新整理这些优秀的开源项目,贪多无厌,一两个精品足以。
这些开源项目可以分为UI类和框架类。UI类主要介绍那些自定义特性的View,包括ListView、ActionBar、ViewPager、Gallery、GridView、ImageView、ProgressBar等等。框架类的话有包含由快速开发框架Afinal,xUtils,以及Google开源的网络框架Volley.
滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView项目地址:https://github.com/beworker/pinned-section-listview
为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题
项目地址:https://github.com/JakeWharton/ActionBarSherlock
Demo地址:https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos
APP示例:太多了。。现在连google都在用
下拉刷新,ActionBar出现加载中提示
项目地址:https://github.com/chrisbanes/ActionBar-PullToRefresh
Demo地址:https://play.google.com/store/apps/details?id=uk.co.senab.actionbarpulltorefresh.samples.stock
APP示例:Gmail,Google plus,知乎等
滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom、scale、slide up三种动画样式出现。项目地址:https://github.com/jfeinstein10/SlidingMenu
Demo地址:https://play.google.com/store/apps/details?id=com.slidingmenu.example
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 BarracksMenuDrawer和SlidingMenu比较:SlidingMenu支持菜单动画样式出现,MenuDrawer支持菜单view处于内容的上下层
允许非对齐行的GridView
类似Pinterest的瀑布流,并且跟ListView一样自带View缓存,继承自ViewGroup
项目地址:https://github.com/maurycyw/StaggeredGridView
Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/staggered-gridview-demo.apk?raw=true
APP示例:Pinterest等
2.DraggableGridView Item
可拖动交换位置的GridView,类似桌面的单屏效果
项目地址:https://github.com/thquinn/DraggableGridView
Demo地址:https://github.com/thquinn/DraggableGridView/blob/master/bin/DraggableGridViewSample.apk?raw=true
1.PhotoView
支持双击或双指缩放的ImageView
在ViewPager等Scrolling view中正常使用,相比上面的AndroidTouchGallery,不仅支持ViewPager,同时支持单个ImageView
Demo地址:https://play.google.com/store/apps/details?id=uk.co.senab.photoview.sample
圆形的ImageView
项目地址:https://github.com/hdodenhof/CircleImageView
效果图:
左右或向上滑动返回的Activity
项目地址:https://github.com/Issacw0ng/SwipeBackLayout
Demo地址:https://play.google.com/store/apps/details?id=me.imid.swipebacklayout.demo
APP示例:知乎
支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、拨号图/表、立方线图及各种图的结合
项目地址: https://code.google.com/p/achartengine/
官方网站: http://www.achartengine.org/
效果图:
APP示例:Wordpress Android,Google Analytics
支持城市、多种日期时间、密码、图片
Android的图案密码解锁
项目地址:https://code.google.com/p/android-lockpattern/
Demo地址:https://play.google.com/store/apps/details?id=group.pals.android.lib.ui.lockpattern.demo
使用介绍:https://code.google.com/p/android-lockpattern/wiki/QuickUse
示例APP:Android开机的图案密码解锁,支付宝的密码解锁
2.xUtils
xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
xUtils 包含了很多实用的android工具。xUitls最低兼容android 2.2 (api level 8)。
- GitHub 地址: https://github.com/wyouflf/xUtils/
3. Android-Universal-Image-Loader
Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。
Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。
4.Android Volley
- 在Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
- Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。
- Volley主页: https://android.googlesource.com/platform/frameworks/volley
- 先整理这些,后续如果有更好的开源框架再补充,或者各位读者推荐的补充上来,希望对你有所帮助!
作者 : finddreams
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。