我是如何自学Android,资料分享(2015 版) 已经完成,我的建议是先把这一篇看完,再看2015 版的。关于我在学习中开发的项目代码,已经发布在:
 
废话不多说,开始正文:
 
最近知乎上有网友问我怎么自学Android,其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者刚入门Android 的朋友,这篇文章作为入门,那是再合适不过了,希望对刚入门Android的朋友有帮助,接下来,就不罗嗦啦。
本文主要有以下几个步骤:
1. Java 基础;
2. 搭建Android 开发环境;
3. 了解Android 运行原理以及一个工程项目结构;
4. 如何系统学习Android;
5. 推荐一些实用的资源
6. 总结

首先呢?当然要有Java 基础;


我大学的专业就是Java,但由于没学好,刚开始学Android 的时候,挺吃力的,后来又去补Java 基础去了;
因为Android SDK 是基于Java 开发的,使用的语言是Java,如果有了Java 基础,学Android 就会事半功倍;比如在Android 中要使用到的接口,抽象类,类型转换,继承,覆盖,匿名内部类,多线程,这些都是Java 语言的,如果以前没有基础过,学Android 会很郁闷的;
当然如果你有C++ 基础,当然也可以基于NDK 开发,可以不使用Java;
对于没有Java 基础的朋友,我推荐一些资料:
Mars 的Java4Android:http://yun.baidu.com/s/1dD5RRQ5
极客学院推出的Android 专题:http://android.jikexueyuan.com/

搭建环境


Android 开发IDE选择,有Eclipse,IntelliJ IDEA,Android Studio(基于IntelliJ IDEA 社区版开发的),Eclipse 和 Android Studio 是免费的;
对于初学者我推荐使用Eclipse,因为Eclipse 成熟,遇到问题,搜索也容易找到答案;以后可以尝试不同的IDE;
搭建环境的步骤:*
  • Eclipse安装;
  • Android SDK安装(Android 开发工具包);
  • ADT安装(Eclipse 的插件,使Eclipse 能够开发Android);
  • 创建AVD(在电脑创建一个虚拟手机);
在这里会有很多工具,可能刚入门的会比较模糊,可以参考:Android 开发,各种工具
如果最终虚拟的手机屏幕能够显示主界面,则表示成功;

了解Android 运行原理,一个工程的项目结构


系统学习Android


有了上面的学习,对Android 也有了初步的认识,接下来可以系统地学习Android 啦,网上资料也很多啦,书籍也很多,视频也很多,我觉得首先要《官方API Guide》;然后手上准备一本书,可以当做字典,不会可以看看;如果看官方文档,有难度,看书进度太慢,可以看视频,跟着视频学,做一下东西,有什么不会的问题,可以Google 搜索;
如果说到细的知识点,比如四大组件,UI,多媒体处理,信号连接,数据存储,我在这里就不多介绍了;主要介绍了一些学习资料;
官方文档

书推荐

视频教程

博客推荐

网站推荐

总结


    • 当然Github 上有很多开源的项目,多看看源码,自己才能快速提升;《Android开源项目分类汇总》,这里几乎汇总了github 上所有的开源项目,可以自己找些慢慢学;
    • 然而学习是乏味的事,坚持到最后是不易的;
    • 要善于利用搜索引擎,遇到不会的问题,要使用Google 搜索;对了,作为一个开发者,要学会自备梯子;
    • 还有学Android,要时刻关注Android 的最新动态,比如最新发布的Android 5.0 棒棒糖版,去了解他的新特性;
    • 加一些QQ 群,有不会可以问问,相互交流;

我是如何自学Android,资料分享的更多相关文章

  1. 我是如何自学Android,资料分享(2015 版)

    自己学了两三个月的Android,最近花了一周左右的时间写了个App——Diigoer(已开源),又花了一两周时间找工作,收到了两个Offer,也算是对自己学习的一种认可吧:我刚开始学习总结的——&l ...

  2. 我是怎样自学 Android 的?

    1. Java知识储备 本知识点不做重点解说: 对于有基础的同学推荐看<Java编程思想>,巩固基础,查漏补全,了解并熟悉很多其它细节知识点. 对于没有基础的同学推荐看一本Java基础的书 ...

  3. [转]Android 学习资料分享(2015 版)

    转 Android 学习资料分享(2015 版) 原文地址:http://www.jianshu.com/p/874ff12a4c01 目录[-] 我是如何自学Android,资料分享(2015 版) ...

  4. Android,资料分享(2015 版)

    Java 学习 我要再次强调,一定要有Java 基础(虽然现在使用其他语言也可以开发Android,但毕竟是很小众),也不要认为学习Java 两三周就可以不用管了,这会在以后的深入学习中暴露出问题,所 ...

  5. 如何自学 Android 编程?

    最近知乎上有网友问我怎么自学Android,其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者刚入门Android 的朋友,这篇文章作为入门,那 ...

  6. Android自学学习资料

    最近在自学Android编程,在网上看了一些博客和视频教程,觉得比较好的分享一下,继续学习,gangbade~ 国外android官网总是出现连不上的情况,如果你不想FQ的话,这里github上可以直 ...

  7. 转自:如何自学Android(强烈推荐)

    转自: http://gityuan.com/2016/04/24/how-to-study-android/ 看到很多人提问非科班该如何学习编程,其实科班也基本靠自学.有句话叫“师傅领进门修行靠个人 ...

  8. linux公社的大了免费在线android资料

    2011年linux数据库的android在线分享 linux公社:开源公社             本文撰写:杨凯专属频道 2011年9月12日 21:39 <目录> Android 3 ...

  9. 一个大四毕业生想对自学Android的大学生说一些话

    本人大四,经历了秋招和春招,秋招拿了华为的android offer,春招是拿的java后台开发的offer,一路走来,感慨很多,有一些话想对在自学Android的大学生说.本文只是帮助像我一样的大学 ...

随机推荐

  1. Flex “跑马灯”效果(自定义“跑马灯”控件)

    自定义类(BroadCastMarquee.as): package marquee { import flash.events.MouseEvent; import flash.events.Tim ...

  2. Sysprep命令详解

    本主题描述了 Windows(R) 8 版本的系统准备 (Sysprep) 工具的命令行语法. 如果你打算创建安装映像以部署到不同的计算机上,则必须运行带有 /generalize 选项的 Syspr ...

  3. HomeSnap

    http://arnauddegiuli.github.io/HomeSnap/ OnBufferingUpdateListener https://github.com/LuckyJayce/Mat ...

  4. C#二维数组(矩形数组,交错数组)

    C# 支持一维数组.多维数组(矩形数组)和数组的数组(交错的数组) 1.多维数组 声明:string[,] names; 初始化:int[,] numbers = new int[3, 2] { {1 ...

  5. 也谈OpenFlow, SDN, NFV

    Copyright (2014) 郭龙仓. All Rights Reserved. OpenFlow 传统的网络环境中,仅仅有路由器/交换机之间的接口/协议是标准化的,可是在网络设备内部,数据平面和 ...

  6. mysql router 自动failover测试

    mysql router 启动服务文件内容: [root@monitor mysqlrouter]# cat /etc/init.d/mysqlrouter#! /bin/bash## mysqlro ...

  7. leetcode -- Merge k Sorted Lists add code

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. [ ...

  8. Python学习 之 文件

    1.文件读写 python进行文件读写的函数是open或file file_handler=open(filename,,mode) (1)打开并读取文件 方式一:open() fo=open('/r ...

  9. C++编程对缓冲区的理解

    本文转自:http://www.vckbase.com/index.php/wv/1592 什么是缓冲区 缓冲区又称为缓存,它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空 ...

  10. 微信朋友圈分享页面(JS-SDK 1.0)

    微信更新sdk后大量分享朋友圈代码失效,标题 缩略图 描述无法自定义 新版SDK分享文章步骤 1.绑定域名 (方法参考 http://mp.weixin.qq.com/wiki/7/aaa137b55 ...