想借自己这款“就看天气”说说自己接近半年来的Android开发之路,也算是自己这段时间的学习总结和知识沉淀。
自己是重庆某高校大三学生,软件工程学院。在学校大一的时候学习的是C++(当然这个特别难懂的语言着实打击了我一阵子,所以没有学好),大二在学校学了Java。在Java学习过程中,比大一时候要轻松很多,就我个人而言,认为学习Java比C++要轻松,然而还是不明白学校为什么还是要把C++的学习放在大一。
决定学习Android是自己很早的想法了,但是真正落实去做是放在了大二暑假。
这之前自己做了如下准备:
▼ 一台配置不错的台式(SSD+8G内存)
▼ Java基础知识
▼ 极客学院Vip账号(非广告,当然你还有其他选择,比如慕课网的视频也不错)
▼《第一行代码》
一个好的电脑确实是必需品,现在写Android应该都开始用Android Studio了吧,这个IDE配上SDD+8G内存你才能优雅的写代码~
Android学习之前真的要把Java基础学好,这样你学Android的时候才不会特别痛苦。掌握基础之后再学Android,还可以边学习Android边复习Java,一举两得。
现在很多网上的视频教程,我个人最开始是跟着极客学院视频走的,而且还加上翻《第一行代码》这本书。虽然这本书是用的Eclipse,但是你用AS重写是完全没有问题的。
>>>>
实战只有在实际操作中你才能知道自己哪些方面的知识欠缺,才会知道开发过程中会遇到哪些恶心的BUG,才会主动的去思考,搜索方案去解决这个问题。而且在自己实践中,也获得了很多开发应用的乐趣。而自己特别喜欢这种创造带给自己的快乐,也是这样才让我喜欢去敲代码吧。
每个天气类应用逻辑就是特别简单,但是这个小应用也能让你明白很多Android的知识。整理了下自己开发这款的思路:
▼ 获取省会列表
自己获取省会城市列表是应用本地数据库,该数据库里包含了省——市——乡三级,Android里用SQLite进行数据库处理操作,最后用ListView显示出来。
这里会学到的知识就是:SQLite,Cursor,简单的ListView+Adapter。
▼ 获取天气信息
这里获取天气信息是从获取到用户要查什么城市名称后跟地址组合发送给“和风天气”API,它会返回给我一个JSON数据。
这里会学到的知识是:Android的网络通信。这里我自己用的是android-async-http库。
▼ 处理天气信息
获取到返回的JSON数据后,需要对这个JSON进行解析,这里我用的是Gson这个库,并且用SharedPreferences进行保存。
这里会学到的知识是:Json数据的处理,SharedPreference常用库的应用。
▼ 更新UI
从SharedPreference获取指定数据,并实现UI更新。
这里会学到的知识是:对Android线程的理解。
>>>>
应用就看天气---个人向天气类应用
#断断续续写了2个月
#实战+资料+看书+整理 这样的自我学习模式很有效果
#已经在豌豆荚,魅族应用,http://Fir.im等平台上线,
#希望你们喜欢而且能够做出自己喜欢的应用
可以这么说上面几份资料就是带我入门的资料,非常值得大家一看,这些资料上面回答的人都有推荐过了,我在这里就不做更多介绍。
- stormzhang 分享的 Android学习之路
- Tikitoo 分享的 我是如何自学Android,资料分享
- 胡凯发起官方教程翻译的 序言 | Android官方培训课程中文版(v0.9.5)
- GitHub
- 简书
先交待本人背景。985,211小硕一头,本硕专业与计算机没有关系,计算机知识主要是本科和硕士阶段自学的,具体有熟悉c,掌握java,了解计算机组成原理,计算机网络,操作系统等。今年初开始自学android,目的是跳出所在的体制内单位,追求自己的梦想。
感悟一:迅速上手。快速地对Android开发技术有一个整体的把握,写出几个小Demo,是很好的正向激励,能增加自学的动力。个人的做法是“囫囵吞枣”。集中20天时间将《Android编程权威指南》从头到尾撸了一遍,并做了详细的笔记,方便复习看,因为一遍下来很多知识点都是似懂非懂,通过阅读笔记可以在反复体会中掌握消化。如果没有做笔记,很难做到快速对全书进行复习。随着复习次数增加,我基本可以做到半天时间复习一遍。
感悟二:保持专注。定下决心后,不要再左顾右盼。本人刚开始学两个月的时候,碰到了Android市场的萎缩,有业内朋友建议我学前端开发或者大数据,云计算,当时确实很心动,但后来通过思考,感到Android开发只是从泡沫期进到了稳定期,很多趁着风口入行,水平差的人将被淘汰,真正技术好的开发者还很缺。另外,Android开发只是一个平台,里面的许多技术都是通用的,或者技术是专门的,所解决的问题是其他领域也有的。这样,从更一般的角度看Android开发,心情就平静下来了。
感悟三:起点要高。由于是大龄自学者,就业上处于劣势,我的策略是,从开始就坚持高标准,走技术路线,跳出初级开发的层次。为此,学了很多源码解析的文章,如okhttp,dagger,eventbus,rxjava,volley等,一开始也是看不懂,做好笔记反复看,渐有所获。Google的官方文档中training部分基本看完,正在看guide部分。对于自定义view,handler,aidl等技术难点采取死磕战术,通过科学上网,在Google上搜索一切能够搜索到的相关文章,逐一阅览,精诚所至金石为开,逐渐的也有点自己的想法了。
感悟四:整理好信息源。最近感觉国内技术博客成井喷状态,99%的都很水,妄想以其昏昏,使人昭昭。经过一段时间的摸索,自己整理出如下信息源,一看官方文档,二看看github上的codepath点这里,三看stackoverflow,四看medium,五看google搜索。经过这五步,目前还没有发现解决不了的问题。
最近知乎上有网友问我怎么自学Android,其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者刚入门Android 的朋友,这篇文章作为入门,那是再合适不过了,希望对刚入门Android的朋友有帮助,接下来,就不罗嗦啦。
本文主要有以下几个步骤:
1. Java 基础;
2. 搭建Android 开发环境;
3. 了解Android 运行原理以及一个工程项目结构;
4. 如何系统学习Android;
5. 推荐一些实用的资源
6. 总结
我大学的专业就是Java,但由于没学好,刚开始学Android 的时候,挺吃力的,后来又去补Java 基础去了;
因为Android SDK 是基于Java 开发的,使用的语言是Java,如果有了Java 基础,学Android 就会事半功倍;比如在Android 中要使用到的接口,抽象类,类型转换,继承,覆盖,匿名内部类,多线程,这些都是Java 语言的,如果以前没有基础过,学Android 会很郁闷的;
当然如果你有C++ 基础,当然也可以基于NDK 开发,可以不使用Java;
对于没有Java 基础的朋友,我推荐一些资料:
Mars 的Java4Android:Java4Android.zip_免费高速下载
极客学院推出的Android 专题:Android安卓开发环境搭建
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开发之旅:环境搭建及HelloWorld
在这里会有很多工具,可能刚入门的会比较模糊,可以参考:Android 开发,各种工具
如果最终虚拟的手机屏幕能够显示主界面,则表示成功;
项目结构推荐慕课网的视频教程:Android 项目结构介绍
Android项目目录结构介绍
有了上面的学习,对Android 也有了初步的认识,接下来可以系统地学习Android 啦,网上资料也很多啦,书籍也很多,视频也很多,我觉得首先要《官方API Guide》;然后手上准备一本书,可以当做字典,不会可以看看;如果看官方文档,有难度,看书进度太慢,可以看视频,跟着视频学,做一下东西,有什么不会的问题,可以Google 搜索;
如果说到细的知识点,比如四大组件,UI,多媒体处理,信号连接,数据存储,我在这里就不多介绍了;主要介绍了一些学习资料;
官方文档
官方指南:Introduction to Android | Android Developers
Android API:Android API| Android Developers
官方中文文档: 序言 | Google Android官方培训课程中文版(v0.5)
书推荐
《Head first Android Developer》;
《Pro Android》;
视频教程
Mars——Android 开发视频教程
黎活明——8天快速掌握Android视频
慕课网——Android 开发视频
极客学院——Android开发,安卓开发教程,android教程,安卓软件开发教程,安卓开发视频教程,安卓开发环境搭建
博客推荐
android开发大牛博客
hellogv的专栏 - 博客频道
Android_Tutor的专栏 - 博客频道
Storm' blog
恺风(Wei)之Android专栏
老罗的Android之旅 - 博客频道
网站推荐
ImportNew - 专注Java & Android 技术分享
Android - 博客 - 伯乐在线
Android开发中文站关注Android,关注开发者
当然Github 上有很多开源的项目,多看看源码,自己才能快速提升;《Android开源项目分类汇总》,这里几乎汇总了github 上所有的开源项目,可以自己找些慢慢学;
然而学习是乏味的事,坚持到最后是不易的;
要善于利用搜索引擎,遇到不会的问题,要使用Google 搜索;对了,作为一个开发者,要学会自备梯子;
还有学Android,要时刻关注Android 的最新动态,比如最新发布的Android 5.0 棒棒糖版,去了解他的新特性;
加一些QQ 群,有不会可以问问,相互交流;
开发android,需要哪些技能基础。
①Java基础知识 ②Linux基础知识 ③数据库基础知识 ④网络协议 ⑤Android基础知识 ⑥服务器端开发知识①Java基础知识
安卓学习视频的话老罗的视频还是不错的
我当初是报的培训学校学的,都是学校老师讲的,课下有时候听一些视频课程,最多的还是自己敲代码,多看官方文档,多敲代码,那段时间天天除了上课就是敲代码,改bug。
推荐几个不错的学习网站给你,可以自己学习下。
csdn(中文IT社区)它是集新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NET、Java、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的大型综合性IT门户网站,源码只是其中的一项,但是很实用 里边有很多大牛。
DevStore(全球首家开发者服务商店)是一个开发者服务整合类平台,DevStore汇集国内外500余款开发者服务,每个服务都有相对应的服务评测报告。开发者可以在这里提交服务、下载源码、评测、对服务进行对比并进行评论等等。
开源中国成立于2008年8月,是目前国内最大的开源技术社区,经过不断改进,已经形成了由开源软件库、代码分享、资讯、翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台,为中国广大开发者提供丰富多样的软件下载,源码托管等功能。
自学的话平时就多看一些官方文档,帮助文档也是一个很好的参考资料,多看看,平时多敲代码,多看看注释多看规范,看完之后去敲代码主要是在实践过程中发现错误,多做项目自然多遇见问题,遇见问题解决问题,下次自然就知道怎么解决,在实践中发现真理。
当然可以的话有一个老师还是很好的,但是要记得要是的作用只是引导,师傅领进门修行在个人。