本文目录一览:
如何自学 Android 编程
1、学Java
目前,Java语言在Android开发中占据绝对统治地位,所以开发Android的之一步就是学好Java,建议至少完整的看一本Java入门书籍,推荐:
Java语言程序设计 (豆瓣):我原来看的入门书籍,我老师推荐的,分为《基础篇》和《进阶篇》。
Java编程思想 (第4版)
(豆瓣):从Java的基础语法到更高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),更讲述了java语言的前世今生,语言特性,设计理念等等,阅读本书需要一定的java基础,个人经验,建议至少看完《Java语言程序设计-基础篇》再看这本书。
2、学Android
之一行代码
(豆瓣):郭霖大大编写的Android入门书籍,推荐这本书的原因有两个,一是郭霖大大的语言通俗易懂,二是这本书很新,是基于Android4.0的入门书籍,根据友盟指数的统计,Android4.0以下的设备已不足10%,所以,你现在入门,抛弃那些仍旧停留在Android2.x的入门书籍吧。
AndroidDevTools:从开发工具到入门教程,从代码规范到版本控制工具,一切与android相关的都在这个网站上,Android入门请参考该网站的
Android Dev Tutorials 模块。
Android学习之路:stormzhang大大编写的Android入门文章,对于有一定java基础的人来说,Android入门有这一篇文章就足够了。(该文章同样被收录在AndroidDevTools中)
郭霖的专栏:郭霖大大CSDN专栏。
stormzhang.com 的页面:stormzhang大大的个人博客。
3、遇到问题怎么办
Google:用google搜出来的结果比百度质量高。至于如何不翻·墙就使用google请自行知乎,但是作为一个Android开发者,你早晚要学会翻·墙。
博客园 - 开发者的网上家园
博客频道 - CSDN.NET
Stack Overflow:国外的开发者问答社区,无需翻·墙。
GitHub · Build software better,
together.:国外的代码托管平台,这里有很多Java/Android开源项目,无需翻·墙。
怎样从零开始学习安卓软件开发?
1、Java se基础
1).Java基本数据类型与表达式,分支循环。
2).String和StringBuffer的使用、正则表达式。
3).面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、 *** 和 *** 的参数传递过程、static关键字、内部类。
4).对象实例化过程、 *** 的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。
5).Java异常处理,异常的机制原理。
6).常用的设计模式:Singleton、Template、Strategy模式。
7).JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
8).Java *** 介绍:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常用 *** 类API。
9).JavaI/O输入输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。
10).Java高级特性:反射和泛型。
11).多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。
2、android UI编程
1)、Android开发环境搭建:Android介绍,Android开发环境搭建,之一个Android应用程序,Android应用程序目录结构。
2)、Android初级控件的使用:
TextView控件的使用
Button控件的使用 ***
EditText控件的使用 ***
ImageView的使用 ***
RadioButton的使用 ***
Checkbox的使用 ***
Menu的使用 ***
3)、Android高级控件的使用:
ListView的使用 ***
GridView的使用 ***
Adapter的使用 ***
Spinner的使用 ***
Gallary的使用 ***
ScrollView的使用 ***
RecyclerView
4、对话框与菜单的使用:
Dialog的基本概念
BlockquoteAlertDialog的使用 ***
DatePickerDialog的使用 ***
Menu的使用 ***
自定义Menu的实现 ***
5.控件的布局 *** :
线性布局的使用 ***
相对布局的使用 ***
6.多Acitivity管理:
AndroidManifest.xml文件的作用
Intent的使用 ***
使用Intent传递数据的 ***
启动Activity的 ***
IntentFilter的使用 ***
Activity Group的使用 ***
7、自定义控件实现 *** :
自定义ListView的实现 ***
可折叠ListView的使用 ***
自定义Adapter的实现 ***
自定义View的实现 ***
动态控件布局的上实现 ***
上拉刷新下拉加载更多
3、android *** 编程与数据存储
1).基于Android平台的HTTP通讯:
Http协议回顾
使用Get *** 向服务器提交数据的 ***
使用POST *** 向服务器提交数据的实现 ***
使用Http协议实现多线程下载
使用Http协议实现断点续传
2).Android数据存储技术:
SQLite3数据库简介
SQL语句回顾
SQLite3编程接口介绍
SQLite3事务管理
SQLite3游标使用 ***
SQLite3性能分析
访问SDCard的 ***
访问SharedPreferences的 ***
初级工程师
技术要求:
基本知识点
比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术
书籍推荐
《之一行代码 Android》、《疯狂Android》
中级工程师
技术要求:
稍微深入的知识点
AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等
书籍推荐
《Android开发艺术探索》、《Android群英传》
AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;
Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;
多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;
事件分发:弹性滑动、滑动冲突等;
玩转View:View的绘制原理、各种自定义View;
动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;
懂性能优化、熟悉mat等工具
懂点常见的设计模式
搞懂view的滑动原理
搞懂如何实现弹性滑动
搞懂view的滑动冲突
搞懂view的measure、layout和draw
然后再学习几个已有的自定义view的例子
最后就可以搞定自定义view了,所谓万变不离其宗
高级工程师
技术要求:
稍微深入的知识点
系统核心机制
基本知识点的细节
设计模式和架构
书籍推荐
《Android开发艺术探索》、《Android 源码设计模式解析与实战》、《Android内核剖析》
继续加深理解”稍微深入的知识点“中所定义的内容
了解系统核心机制:
了解SystemServer的启动过程
了解主线程的消息循环模型
了解AMS和PMS的工作原理
能够回答问题”一个应用存在多少个Window?“
了解四大组件的大概工作流程
…
基本知识点的细节
Activity的启动模式以及异常情况下不同Activity的表现
Service的onBind和onReBind的关联
onServiceDisconnected(ComponentName className)和binderDied()的区别
AsyncTask在不同版本上的表现细节
线程池的细节和参数配置
…
熟悉设计模式,有架构意识学习 ***
-----------------------------------------------------------------
作者:小码同学
链接:
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如何自学 Android 编程?
如何自学 Android 编程:
项目需要,8月中旬开始决定做安卓的程序,所以马上就开始学习安卓方面的开发知识,把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料,视频,然后就不知道做什么了,要给自己定个目标,我要做什么?我怎么达到目标?
我不懂java,但是懂C#和C++,所以我没主张去单独学习java语言,如果你是个最最初的新手,没啥语言基础,那你必须先看看java语言,不要很详细看,因为学习Android中,你也是在学习java。
1. 明确目标
没有目标的学习,会感觉到后面没什么成果,在1年前,我也打算学习android开发的,但是目的就是学习,到网上去下载很多学习的视频,然后把开发环境搭建起来,能把Helloworld运行起来,能打些log,Activity之间也能互相切换了,但是后面也就不了了之了,因为不知道学了要干什么。依葫芦画瓢的做了几个例子,因为里面的问题都是已经解决的,所以也没能深入的系统学习。
这次因为产品的需要,要做Android版本,要做的东西一开始就已经设计好了,见摇摇2选1安卓版本,刚开始也不知道里面有些什么技术难度,但是要做的目标已经明确了,而且也没有现成的,碰到问题就查资料,慢慢地解决,这样有的放矢,学习的效果非常好。既有现成的技术可以使用,又有些技术,需要查比较多的资料,这样记忆就比较深刻,所掌握的知识也比较系统。
接下来的一系列文章,我会把在开发摇摇2选1中遇到的问题,给大家详细讲讲,程序虽然小,但是五脏俱全,做Demo和做产品的要求完全不是一个级别,如果Android大牛感觉知识讲的比较浅,那可以绕道,毕竟我是从一个完全的新手开始的。
2. 了解安卓开发中比较困难的地方
学习一个新平台,就要知道此平台开发要面临的困难有哪些,不要做到最后,这些问题没有考虑,那就比较糟糕了。在网上搜索了下,安卓开发困难总结如何:
1)安卓系统版本比较多,各版本之间的兼容性是个问题,此为系统碎片。
2)安卓设备千变万化,设备难以统一,每个产品都成为独立,分散的Android碎片。
3)分辨率五花八门。一个产品,可能需要多个界面排版,人工消耗比较大。
看到这张图,有没有头疼的感觉?
总结成一句话:Android的碎片化真是要来开发者的命。
3. 搭建开发环境
"巧妇难为无米之炊",开发环境肯定是之一件要做的事情,这类的文章已经很多了,我也不多说了,多说也就比较无聊了。感谢吴秦,也是博客园里的一员,他写的很详细了,见这里。
4. 查看网友总结的一些经验。
不是什么都查看,开发中遇到什么问题,就去查看什么问题,这样你查到的知识,马上就能深入的实践,这样知识就巩固了。
1)首先当然要看Android的开发文档,里面其实大部分的知识都有了,还有就是SDK自带的Samples。
2)博客园里搜索“Android开发”,会出来一大把,很多网友都是很系统的讲解了。
3)eoe
android社区,里面有很多网友上传了现成的demo代码,里面很多都是模仿现在流行的产品的界面开发,很是不错。
5. 掌握调试 ***
个人一直认为,调试技巧是开发中最重要的技能,如果调试技能比较差,不知道如何查找问题,那不会是个好的程序员,其技能也不会高到哪里去。
Android做下来,感觉调试这块做的很不错了,这要感谢Eclipse
IDE做的比较不错,但是Android的界面排版部分,真的不敢恭维,Eclipse时间用长了,占用内存真是大。有哪位高手能否告诉我下,你们界面排版是用什么的?
Android里,如果程序出了问题,有些是一下跟踪不到的,这时就要用到Log类了,Log类使用很简单,就不多说了。
自己一个很有感触的经验,如果你真的打算做Android开发,那就买一个设备,这样能大大提高开发效率,模拟器有时用起来真是麻烦,而且开发的设备不要很好的,只要设备分辨率是主流的,传感器的支持更好全点就够了,国产的手机里,华为的还不错,或者到 *** 上去买个二手的,投资不大。真的买了投资,可能也会增加你学习Android的决心。
6. 程序框架
经过10多年的经历,认识到程序的框架对开发产品真的是起到举足轻重的作用。一个好的产品,如果有个好的程序框架,那真是事半功倍,可能开始所做的工作会比较多,很难看到令人激动的成果,但是相信我,绝对值得。一开始,我也是比较注重程序界面开发,很快就开发出界面来,而且着实比较激动,因为有东西出来了,但是后面的事情,真是令人发狂,想从头再来,太迟了,离计划的时间比较近了,时间不允许,只有硬着头皮往上打补丁,硬着交付之一个版本,第二个版本或者后面的版本,迟早是要重来的。所以在后面带领团队开发的时候,在开发前,都是要讨论程序框架,留出很大部分时间进行程序框架开发,及在开发中不断的改进。
刚接触Android,不知道用什么程序框架,所以查了很多资料,一开始看到一个程序框架,感觉很不错,所以一开始就使用了下面这个程序框架。