安卓开发如何入门
我干了3年Androidsdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径。根据前辈的经验,Android底层完全入门需要两年。先说下我的入门过程:第零步,下载源码,我下的4.2的,框架层源码10G,内核2G多,ctags给框架层建的标签文件都有600M,当时让我有点震撼,用的vimctagscscope来阅读,还算不错,架构挺清晰的。第一步,我找到了一本好书《Android的设计与实现第一卷》它讲了Android框架层的启动,初始化,服务框架初始化,Binder,消息循环,。据作者说后面会出讲UI子系统的第二卷,拭目以待。其实这本书看了几十页我就发现需要第二步的知识,否则看不下去,于是跳去第二步。第二步,学习Linux系统编程,在看《Android的设计与实现》的时候我发现,框架层的Native部分,全是Linux编程。为了掌握这部分知识,我花了4个月学习了《Linux系统编程手册》(TLPI)这本1000多页的书,我以前是搞WIndows文件系统这块的,所以C语言还比较熟,TLPI的习题很有意思,量也比较大,坚持下来还是收获很多。第三步,花了4个月学习了一些Linux内核的知识,看了LKD,PLKA看了一半多。越学越没底,觉得不懂得越来越多,不过这个也正常,只有靠慢慢磨,估计以后要不断的磨这块。第四步,回头看Android源码,这次一口气看完了《Android的设计与实现第一卷》,终于对框架层有了谱。同时真的数次把我看晕,前面看Linux内核源码都没这么晕,不断在Java层和Native层之间跳有点磨脑浆。其中我又觉得Java的基础没有打太牢,回去补了一个月的《CoreJava》第八版。但是这书没有涉及UI子系统,于是又看了《Android内核剖析》第五步,《Android内核剖析》(这本书实际上是讲框架层的,作者也是个搞嵌入式的,所以他在写框架层的时候文笔不太好,很罗嗦,不过还是有很多看点,到他后来写做ROM,玩开发板时估计是说到了他的本行,一下子遛起来了看得出还是挺有水平的,这本书知识有点旧毕竟讲的是2.3很多代码已经过时,但是作者很多点子很有参考价值)这本书讲UI子系统和按键/触摸消息处理系统还是很有分量的,尤其13章View绘制那里,结合源码研究很有收获。而后面他讲编译框架和ROM相关的东西都是挺宝贵的资料。第六步,为了再补一下其他诸如电源管理模块等子系统的知识看了,《深入理解android》系列,个人认为这个系列看起来有点不太舒服,不过作为补充印证还是比较有价值。第七步,《Android系统源代码情景分析》,罗升阳的源码分析大作,比《Android的设计与实现》分析得更细致,但缺点是涉及到模块比较少,选用的源码也比《Android的设计与实现》更旧一点。看完书后需要去研究作者的博客,东西挺多的,一定让你满意。第八步,买块开发板自己玩。这步我还没走到,原因是我觉得我还差点准备知识。可能要再几个月,到时准备入块6410或者树莓派。最后,由于我11年以前都是搞Windows这块的,所以对Linux知识不是很了解,不得已看了这么些书,如果是一直做Linux的人,很多步骤估计可以省掉了。直接上源码才是正道。我本身做着移动GIS开发的工作,学框架层全是因为兴趣,但招聘平台Android框架层开发人员还是蛮有竞争力的有不少定制ROM,智能电视的工作都处于人才难求状态,毕竟有一定的门槛,现在各种ios培训,让奔着钱干开发的人纷纷涌入,而ios只能干sdk开发的缺点就暴露出来了,一堆新手老手,菜鸟大牛全挤在SDK开发这块,我觉得不太妙。反观Android这边,虽然入门菜鸟没有搞ios来钱,但是可持续性很好,从sdk-》框架》驱动》内核这样干下去。干着干着发现自己渐渐变成了Linux开发者/嵌入式开发者的人也不少,新人,老手,菜鸟大牛各居其位,层次性很好。
安卓开发教程 安卓开发怎么入门
1、安卓开发书籍:学习安卓,可以选择报培训班,也可以选择看视频,也可以去请求高手。但是如果手中拥有一本好的安卓开发书籍,往往可以起到事半功倍的作用。
2、安卓开发必知的一些开源库:现在,安卓开发已经逐渐成熟。在安卓开发过程中,选择开源库,需要根据APP。不过无论出现多少安卓开发工具,开源库的重要性都是不言而喻。为大家精选的安卓开发开源库,主要包括Volley、ActiveAndroid、ActiveAndroid–Android轻量级ORM框架等。
3、安卓兼容库:Android兼容库很多,主要包括ActionBarSherlock、ActionBarCompact、NineOldAndroids、AndroidSupportV4、NavigationDrawer等。
4、翻墙/教程:安卓开发需要的资源很多,为大家精选了基本教程,主要有教程GoogleAndroid官方教程、Android教程、Android视频学习推荐、解析Android架构设计原则等。
5、安卓基础:安卓基础知识,主要有Android四大基本组件介绍与生命周期、ListView的基本使用与优化、Android系统用于Activity的标准Intent、Android屏幕适配、Android中SQLite应用详解、AndroidFragment完全解析等。
6、开发环境:大家都知道,安卓开发之前,第一步就是搭建环境。开发环境所需要的资料、软件、教程。
7、安卓中级:上面的资源都熟悉之后,你将进入安卓开发中级阶段。安卓开发中级,需要了解的哟安卓应用程序的生命周期、安卓布局优化、androidservice完全解析等。
8、安卓设计/进阶/开源项目:为了开发者快速了解当前一些流行的Android开源库,精选了GitHub排名前100名的安卓项目、Android个性化控件(View)开源项目等。
Android开发教程是怎样的?
参加Android开发培训的同学都会先了解Android开发教程是怎样的,下面介绍Android开发要学习并掌握的知识有:Java基础、Linux基础、数据库基础、网络协议、Android基础、服务器端开发等。北大青鸟认为最重要的是最后的项目实训。Java基础零基础自学的同学刚开始一定会觉得Android开发当然要先从Android开始学习。然而,并不是这样的。Android开发基础是Java,所以Java基础一定要打扎实,才能更好地进一步学习。Java需要掌握的知识有:Java基础语法及设计模式。Linux基础Android系统以Linux系统为基础。开发过程中,要用到某些Linux命令,因此要掌握Linux基础。数据库基础学起来就很简单了;接着是网络协议,HTTP协议和Socket协议是必须掌握的;然后是Android基础。服务器端开发大多Android应用都需要服务器端的支持,因此服务器端开发内容也是必须要掌握的。服务器端分为很多种类:1.JavaEE:优点是功能完整、强大。2.PHP:简单易学,开发快速。3.NET:特点与JavaEE类似。4.rubyonrails:简洁,优雅是它的优点。寥寥几行代码,即能够实现非常复杂的功能,不过要有Ruby语言基础才行。项目实训为什么建议大家参加Android开发培训,而不是自学,自学能做项目吗,不可能!Android开发培训老师一定会带着做几个项目,团队协作,几类项目经验,这是自学学不来的,项目实训非常重要。
Android系统
1、Android是用户量最多的移动操作系统最新中国智能手机市场报告,2015年第一季度中国智能手机出货量同比增长了17%,总计达到1.1亿部。庞大的手机用户量为开发提供了良好的发展前景。2、AndroidAPP推广相对容易相较于苹果手机用户,安卓用户的下载就相对容易非常多,用户不仅可以通过应用商店下载您的应用,同时运营商能够通过二维码推广为用户提供推广途径,吸引更多用户下载。3、Android系统开放性高相对苹果系统的全封闭式,安卓系统的高度开放,给了开发者相当高的开发自由度,您的应用可以更加接近您所想所要的。4、Androidapp开发语言安卓应用软件开发语言有C语言和其他语言,但是主流的开发语言是Java语言,使接口到功能,都有层出不穷的变化。提高了软件神华信息的交互的可能性是Java最大的特性,可以说安卓手机几乎所有的应用程序都是利用Java语言来进行编写的。使用Java语言开发的软件的程序库、数据库、运行库都是Android手机软件的一大特点。Java语言自身的优点也有很多,所以安卓应用软件的开发应用到了的核心类的知识量,这也让使用Java语言开发的安卓软件具备优势。
安卓android开发
学习安卓开发,要先学什么
第一阶段:Java面向对象编程
1.Java基本数据类型与表达式,分支循环。 2.String和StringBuffer的使用、正则表达式。 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。 4.对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。 5.Java异常处理,异常的机制原理。 6.常用的设计模式:Singleton、Template、Strategy模式。 7.JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。 8.Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。 9.Java I/O输入输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。 10.Java高级特性:反射、代理和泛型。 11.多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。 12.Socket网络编程。
第二阶段:Java Web开发
1.Java解析XML文件DOM4J。 2.MySql数据库的应用、多表连接查询的应用。 3.Jsp和Servlet应用。 4.Http协议解析。 5.Tomcat服务器的应用配置。 6.WebService服务配置应用。
第三阶段:android UI编程
1、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序目录结构。
2、Android初级控件的使用:
TextView控件的使用Button控件的使用方法EditText控件的使用方法ImageView的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法
3、Android高级控件的使用:
Autocompletion的使用方法ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法
4、对话框与菜单的使用:
Dialog的基本概念AlertDialog的使用方法DatePickerDialog的使用方法Menu的使用方法自定义Menu的实现方法
5、控件的布局方法:
线性布局的使用方法相对布局的使用方法表格布局的使用方法
6、多Acitivity管理:
AndroidManifest.xml文件的作用 Intent的使用方法使用Intent传递数据的方法启动Activity的方法IntentFilter的使用方法Activity Group的使用方法
7、自定义控件实现方法:
自定义ListView的实现方法可折叠ListView的使用方法自定义Adapter的实现方法自定义View的实现方法动态控件布局的上实现方法
第四阶段:android网络编程与数据存储
1、基于Android平台的HTTP通讯:
Http协议回顾Apache Commons 工具包介绍使用Get方法向服务器提交数据的方法解析服务器响应数据的方法使用POST方法向服务器提交数据的实现方法向服务器提交非文本数据的实现方法使用Http协议实现多线程下载使用Http协议实现断点续传
2、Android数据存储技术:
SQLite3数据库简介SQL语句回顾SQLite3编程接口介绍SQLite3事务管理SQLite3游标使用方法SQLite3性能分析访问SDCard的方法访问SharedPreferences的方法
3、ContentProvider使用方法:
ContentProvider实现共享数据、URI的解析与UriMatcher、ContentUris的使用、使用ContentResolver操作ContentProvider、ContentProvider的监听Android当中的异步操作:Handler的使用方法;异步任务的基本概念;AsyncTask的使用方法。
第五阶段:android手机硬件管理
1、地图及定位技术:GPS简介;LocationManager的使用方法;在Google Map上添加标记的方法;查询某地附近建筑的方法;使用Google Map实现点对点导航。
2、传感器使用方法:方向、加速度(重力)、光线、磁场、距离、温度等传感器的使用。
3、近场通信技术:NFC技术简介;NFC技术是用场景介绍;NFC技术实现方法。
4、媒体管理技术:MediaPlayer的使用方法。
5、触摸屏技术:手势识别;多点触摸技术。
第六阶段:Android图形编程技术
1、图形处理基础:2D图形编程基础;2、点、线、面等基本图形元素绘制方法;3、Android动画框架简介;4、位移动画的实现方法;5、淡入淡出动画的实现方法;6、旋转动画的实现方法;7、Matrix的使用方法。第七阶段:Android游戏开发1、Android游戏开发:Android游戏开发概述;2、SurfaceView的使用方法;3、物理小球技术;4、碰撞检测技术;5、图片、文字和背景音乐等资源的使用方法;6、游戏引擎基础概念;7、Cocoa2d-Android引擎使用方法;8、OpenGL ES使用方法。