Android 学习之路(转载)

本文作者:Stormzhang
转载来自:http://stormzhang.github.io/android/2014/07/07/learn-android-from-rookie/

QQ交流群:383323653 (入群理由填写我的GitHub账号(stormzhang))
收到一些朋友的微博私信,说能不能给Android新手们一些指导,我只能说指导谈不上,毕竟我也很多东西正在学习中,与此同时一大学同学准备转行Android,可以说是从头开始,那么我就姑且以一个过来人的身份给一些建议吧,只希望在学习的过程中能够少走写弯路吧。


硬件


  • 电脑–推荐Mac
    首先声明我不是果粉,个人Windows,Linux,Mac OX系统均用过, 只能说Windows上面的开发工具简直难以恭维,尤其命令行超级难用,而Linux自己必须得花不少时间在折腾中,更是不适合新手了,Max OS是我认为迄今为止最好用的系统,没有之一, 所以如果你不差钱的话,强烈建议入手一台Mac,推荐Pro系列, 当然它的价格确实比较昂贵,如果暂时入手有困难,推荐以后手头宽裕的时候再入手吧,会带给你质的体验。(Google的工程师们都在用Mac,应该比较有说服力吧)
  • 手机–推荐Nexus 5
    做Android开发最难以忍受的就是那龟速的模拟器,强烈推荐入手我Google的Nexus系列,原生rom,性价比超高,有条件的推荐再入手一台小米或三星之类的,不是因为他们有多好用,而是因为目前市场上这两个品牌的手机份额最大,实际开发中可能需要进行适配与测试,总之你需要有台Android手机。你可能还需要知道魅族手机有个SmartBar的东东,虽然我认为确实很SB。最后你实在还是要用模拟器的话,那么姑且就给你推荐一款比较快速的模拟器吧—-Genymotion, 具体的见我这篇博客《一个强大的Android模拟器Genymotion》。


开发环境


  • Eclipse ADT
    Google帮你集成了一个完整的Android开发环境,包含一个定制的Eclipse + ADT plugin,以及最新的SDK及源码

  • IntelliJ IDEA
    相比与Eclipse更推荐使用IDEA,以后可以无缝过渡到Android Studio

  • Android Studio
    首先说明这个不适合新手们使用,但是你必须知道这是Google最新推出的Android开发工具,基于IDEA,编译依赖Gradle,目前还没有推出1.0的正式版,但是你依然可以业余项目熟悉了解下,因为这也许是Android开发工具的未来

  • 翻墙
    俗话说,不会翻墙的程序员不是好程序员,尤其最近Google各项服务被屏蔽,以上IDE的下载也就都需要翻墙,这里推荐一个靠谱的VPN吧,支持多设备MAC,Windows,Android,iPhone等,如果和小伙伴们一起合买的话每月只要几块钱,圈内的朋友们都在用,如果你通过下面链接购买的话,你和我的账户都会增加10元钱。
    云梯VPN


###如果无论如何你都不想翻墙的话,这里github上可以直接下载以上Android开发工具

Google Android官方教程



Android基础


上面可能是一个比较全面系统的培训教程,对于新手们可能对某些需要着重掌握的东西比较迷茫,于是整理下个人认为新手们必须要掌握的知识点,顺便也会附带相应觉得不错的讲解博客地址。


Android中级



Android进阶


  • Android Gradle
    Google官方Android新的构建系统,可以很方便的管理依赖、编译打包等

  • Android 性能优化
    一系列的性能调优教程,让你的代码以及App更畅通!

  • 一个完整的开源项目–9GAG
    一个开源客户端,教你使用Studio、Gradle以及一些流行的开源库快速开发一个不错的Android客户端

  • 整理的Android开发资源
    自己整理的一些Android开发资源,包括开发、工具、设计等,相信会对你有用的


Android设计


在开发一款Android App之前,你需要了解下Android平台的设计规范,这里有一系列关于Android Design的讲解以及Google最新推出的Material Design中文翻译版


Android兼容库


在了解了设计规范准备着手开发你的App时,你还需要考虑你的App支持的版本,如果是全新的App,从目前的市场份额来看,建议直接支持4.0+,虽然2.3的份额仍然有一部分,但是这部分真正用来使用App的人又能有多少呢。当然如果你的公司必须要求支持2.x的版本,那么也不用担心,下面整理了几个满足你适配的一些兼容库:

  • ActionBarSherlock
    大神JakeWharton的一个ActionBar的兼容库,支持在2.x版本使用ActionBar

  • ActionBar Compact
    在这之前使用ActionBar基本都会使用上述JakeWharton的兼容库,但是目前Google有了自己的一套ActionBar兼容库,推荐使用ActionBar Compact,具体介绍及使用方法详见我的这篇博客

  • NineOldAndroids
    Android 3.0之前开放的一些新的动画api–Property Animation,大神JakeWharton的又一大作,可以让你在2.x版本的sdk可以使用属性动画.

  • Android Support V4
    如果需要兼容2.x的版本,在使用如下类的时候你需要使用v4包下的,如Fragment, FragmentManager, FragmentActivity, FragmentPagerAdapter, CursorLoader, LoaderManager, AsyncTaskLoader,当然v4包下面除了以上还有一些新的控件你必须知道

  • Navigation Drawer(导航抽屉)
    在这之前在Android上实现一个抽屉导航你可能会用到SlidingMenu开源库,如今你可以使用官方的DrawerLayout控件很容易实现

  • SlidingPaneLayout
    SlidingPaneLayout是V4包中新添加的组件,可以实现两列面板的切换, 具体使用与效果见博客链接

  • SwipeRefreshLayout
    SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一个下拉刷新组件,使用起来很方便,可以很方便的实现Google Now的效果


Android开发必知的一些开源库


说到开源库就不得不提GitHub,只能说是目前最活跃的开源社区,不知道的赶紧去注册个账号使用起来,绝对是你快速提升技术的利器。

Volley
App开发中免不了要和服务端进行交互,而volley是Google官方推出的一个开源的网络通信库,它能使网络通信更简单,更快速。


ActiveAndroid
ActiveAndroid算是一个轻量级的ORM(对象关系映射(Object Relation Mapping))框架,简单地通过如save()和delete()等方法来做到增删改查等操作。


Retrofit
Retrofit和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit 把REST API返回的数据转化为Java对象方便操作。同时还封装了网络代码的调用。


Android-Universal-Image-Loader
Android-Universal-Image-Loader是一个强大的开源图片异步加载库,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。


Android开源项目分类汇总


非常全面的GitHub开源项目汇总,不需要重复发明轮子,尽情遨游在开源世界里吧


关于作者


非科班转投编程,Android开发者,Google脑残粉,热爱开源,分享Android方面的知识、技术、见闻

Weibo: googdev

GitHub: stormzhang

Company & App: 薄荷

Android微信公众账号
推荐大家关注我的微信公众账号AndroidDeveloper, 专注Android技术分享,保证绝对干货!