如何自学 Android 开发?

想自学android软件开发,从何入手。2000年本科入学,期间学过c c++ 数据结构,之后就再也没有用过。本人数学专业出身。求大牛们指点迷津。
关注者
19,746
被浏览
2,772,801
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

就看天气V2.0更新并且开源

1. [RxJava](

GitHub - ReactiveX/RxJava: RxJava

)

2. [RxAndroid](

GitHub - ReactiveX/RxAndroid: RxJava bindings for Android

)

3. [Retrofit](

GitHub - square/retrofit: Type-safe HTTP client for Android and Java by Square, Inc.

)

4. [Glide](

GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

)

项目地址:

Github:

GitHub - xcc3641/SeeWeather: RxAndroid+Retrofit+Glide+Matrial Design Weather App

就看天气该应用就是如同它的名字一样,只做一个单纯、简单的看天气软件。这么多天气软件,你选择了我,这是我的幸运。

从 15 年 10 月上线,到目前经历两次重大改版,一次代码的重构,一次界面的大幅度改动,目的都是为了你们。 在开源的过程中,收到了很多来自有趣的你们的邮件。我也曾遇到过棘手的问题无处咨询又谷歌不到。那个时候的我,也可能是现在的你。所以我希望能够帮助到你。


截图:




以下是很老的答案,不太适合现在 Android 学习的路线,不过可以当做一个历程来看。

---------------------------------分隔线------------------------------------------

>>>>

准备

想借自己这款“就看天气”说说自己接近半年来的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个月

#实战+资料+看书+整理 这样的自我学习模式很有效果

#已经在豌豆荚,魅族应用,Fir.im等平台上线,

#希望你们喜欢而且能够做出自己喜欢的应用