1,如何自学 Android 编程如果你已经确定了学习Android的目标,那么,应该提前做好哪些工作、先打下哪些基础呢?首先 , 你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下 , 最好能搭建一个环境来运行、调试它 。如果没有学过,不妨也提前学习一下 , 可以参考清华大学出版社出版的谭浩强老师的《C语言程序设计》,推荐这本书的原因 , 一是它已经经过了多年的考验,应该说还是比较严谨的;其次就是大部分的高校所开设的C语言使用的教材都是用它作为教材,因此无论是购买还是借阅,都容易找到 。另外,华清远见网站上也有一些这方面的教学视频,可以结合来看 。其次,如果你后续有志于游戏方面的开发 , 你最好具备一定的数据结构和算法基础知识 。这一点是我在华清远见的讲台上 , 给学员们坚持强调的 。虽然现代的高级编程语言中,其类库中已经帮我们实现了大部分的数据结构,一般情况下,我们直接使用即可 。但如果你能对其原理有所了解,当你需要在这些数据结构和算法中间的时候,你可以能更加的清楚到底应该选择那个数据结构或者算法 。另外,在图形图像处理上面,线性代数的作用也非常重要,如果能掌握一点这方面的基础知识,无疑也会在后续的学习中如虎添翼 。举个例子 , 在Android中,有一个用于图形变换的类Matrix,用起来稍有点难 。其实它的理论基础就是线性代数中的矩阵,如果你了解矩阵的基本算法,这个类的使用可以说就易如反掌了 。第三,因为Android应用的开发语言用的是Java语言,并且在Android中也用到了Java核心类库的大量的类,因此,在学习Android开发之前,可以先把Java基本语法和Java SE的基础类库好好学习一下,例如:Java中的IO、网络、线程、List、Map、Tree等数据结构 。现在的大学里也有不少的院系开设了Java课程,教材和图书也非常丰富,如果你所在的院系没有开设 , 也可以从其他开设了这个专业的院系同学那里借阅一下,并认真完成他们所布置的作业,争取自己能动手编写出一些简单的Java应用 。如果自己购买图书,可以购买《Java核心技术,卷1(原书第8版)》这本图书来学习 。第四,因为在Android中,会用到数据库来存储数据,因此,也可以提前对数据库知识做相关的储备 。在Android所使用的SQLite中,其语法是遵循标准的SQL-92语法的(当然和企业级数据库如Oracle等比较,功能上要弱很多) , 有条件的话 , 最好也能安装一个数据库来进行实际的操作 。从易用性和资料完备性来说,建议大家使用Microsoft SQL Server或者MySQL就可以了 。它们都是我们学习数据库的好平台 。另外,如果曾经学习过数据库原理或者关系代数,那么,在学习数据库的过程中,也可以再好好地复习一下这些基础知识,对我们理解数据库大有裨益 。最后 , 我们结合华清远见3G学院的“3G Android系统开发就业培训班课程体系”来谈谈Android开发的学习方法 。Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大 。因此,一个好的学习方法对我们学习Android开发很重要 。因此在华清远见的课程体系设计中采取了循序渐进、将大目标分解成多个小目标,逐步达成对Android开发从应用层到底层系统及驱动开发全面掌握的目的 。例如,可以先从Android的应用开发开始 , 等到对应用掌握的比较熟悉了,开始慢慢阅读一些Android 应用框架层的源代码 , 然后再渐渐往下去了解Android的JNI、Libraries、Dalvik虚拟机、HAL层、硬件驱动、Linux内核、ARM技术体系架构等,虽然近期Intel宣称要让Intel芯片支持Android系统,但在可预见的时期内,在移动设备上,ARM的优势应该还是不可撼动的 。具体来说 , 可以先通过在开发板上构建一个自己的Android系统,了解Android系统的整体架构和启动过程,由此先对Android有一个初步的了解;接下来 , 学习Android的应用开发 , 在这里可以先学习Android的几个主要组件、UI组件 , 先对Android应用开发有一个感性认识 。在能够熟练搭建用户界面后,再逐渐来丰富应用的功能,例如:加上事件处理 , 使其能够和用户互动;加上数据存储功能;加上联网功能等等 。在学完应用后,在此基础上来学习游戏编程 , 先了解游戏设计的基本思路,然后开始从小的游戏、小的模块开始做起 , 到最后能完成一个类似于现在热门的《捕鱼达人》这样的游戏 。在掌握了这些应用层级的内容后,可以去了解如何在Android应用中通过JNI去调用C/C++的接口,再往下学习Linux的内核和驱动开发如字符设备驱动、Flash设备驱动、网络设备驱动等等;再在此基础上,去学习Android驱动开发、HAL(硬件抽象层)开发、ARM体系架构和指令等等内容,这样 , Android开发的整个体系就都贯穿起来了 。当然,因为时间有限 , 而底层部分的内容比较庞杂,因此,在真正去做这部分工作之前,我们只需要对其基本原理有所了解 , 做好相关知识的储备,能够根据老师的指导来完成相关的实验 。这样在后续的工作中,就可以方便的往这方面发展,让自己的事业更上一层楼 。【如何学安卓编程语言知乎,如何自学 Android 编程】
2,怎样从零开始学习安卓软件开发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的使用方法RecyclerView4、对话框与菜单的使用: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在不同版本上的表现细节线程池的细节和参数配置…熟悉设计模式,有架构意识学习方法-----------------------------------------------------------------作者:小码同学链接:https://zhuanlan.zhihu.com/p/163528281来源:知乎著作权归作者所有 。商业转载请联系作者获得授权 , 非商业转载请注明出处 。
推荐阅读
- ins软件下载新版,ins怎么下载
- 迅雷安卓各个版本下载地址,手机迅雷how下载和软件
- 1v1视频聊天软件,视频聊天的聊天软件
- 佳能单反相机入门教程 佳能单反x3
- 佳能EOSkissx3 佳能EOSKISS
- 佳能m3连接手机教程 佳能M3如何连接Wi-Fi
- 佳能m2怎么使用 佳能m2使用教程
- 京东商城尼康镜头 东京买尼康镜头
- 佳能快门数重要吗 佳能快门十万以后计数