Android菜鸟如何学习Android系统开发?

如何做好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就可以了。它们都是我们学习数据库的好平台。另外,如果曾经学习过数据库原理或者关系代数,那么,在学习数据库的过程中,也可以再好好地复习一下这些基础知识,对我们理解数据库大有裨益。

Android开发学习方法

  最后,我们结合"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菜鸟如何学习Android系统开发?

时间: 2024-11-08 03:52:28

Android菜鸟如何学习Android系统开发?的相关文章

Android - 使用ApiDemos学习Android开发

使用ApiDemos学习Android开发 本文地址: http://blog.csdn.net/caroline_wendy 位置: android-sdk/samples/android-20/legacy/ApiDemos; ReadMe中,在使用ApiDemos需要添加依赖库: Project Structure - Dependencies: 添加 com.android.support:support-v4: 20.0.0, 即可使用; 执行,输出app程序,就可以展现ApiDemo

Android 提供的一系列辅助系统开发工具

除了软件本身的代码之外,Android 还提供了一系列工具来辅助系统开发,这些主要的工具包括: aapt(AndroidAssetPackagingTool):用于建立zip兼容的包(zip.jar.apk),也可用于将资源编译到二进 制的 assets. adb(Android Debug Bridge,Android 调试桥):使用 adb 工具可以在模拟器或设备上安装应用程序的.apk 文件,并从命令行访问模拟器或设备.也可以用它把 Android 模拟器或设备上的应用程序代码和一个标准

Android——自定义View(学习Android开发与艺术探索)

ViewRoot和DecorView ViewRoot对应于ViewRootImpl类,是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的.在ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和DecorView建立关联. View的绘制流程从ViewRoot的performTraversals开始,经过

Android直播推流学习

Android直播推流学习 Android直播推流学习 第一部 第二部 第三部 第四部 第一部 本文也主要是一步步分析spydroid源码. 首先spydroid的采用的协议是RTSP,目前我知道支持RTSP协议的服务器是Darwin,但是Darwin比较复杂,所以大家可以选择EasyDarwin,大家可以去搜搜看看.还是继续说spydroid吧,spydroid这个项目大家可以在github上搜到的,不过作者也是很久没有更新了,如果大家只做推流的话可以看看原作者的另外一个项目Spydroid.

学习Android系统移植与驱动开发的心得1

首先,学习Android系统移植与驱动开发,我们需要了解两个概念.什么是“移植”?由于Android原生的代码支持的设备并不多,因此我们想要在自己的设备上完美运行Android,就需要另外开发一些程序,使得Android可以识别相应设备中的各种硬件,这个过程被称为“移植”.在这个移植的过程中,我们必需要了解另外一个知识,就是“驱动开发”(Android是基于Linux内核的).到底什么是“Linux驱动”呢?作为初学者,我们只需要知道任何的Linux驱动都有一个加载函数和一个卸载函数即可,它们分

Android系统开发的学习教程在哪里可以看?

Android蛰伏很多年,终于赶上移动互联时代,迅猛崛起,以80%以上的占比成为行业占有率首位,Android程序员也成为移动互联发展必不可少的推动者,移动互联网行业的发展人才是非常重要的,很多开发者都纷纷转型到Android,这些传统的开发者想要从事移动互联网行业的开发,需要参加培训,参加Android培训来提升自身的技术实力,传智播客Android培训行业的领导者,为各大企业很多企业输送了大量的Android人才,来提升人才的战略. 目前Android系统占据了移动互联网行业的主体,很多用户

C#程序员学习Android开发系列之学习路线图

通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识. 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明确一下接下来的学习目标以及学习路线. 一.对Android开发的基本认识 1.Android原生开发是基于Java语言的,由于我比较擅长C#,所以对Java语言本身不太熟练,需要加强Java语言基础的练习,这一块我会穿插到具体的知识点练习当中,并且在必要的地方给出与C#语言的对比(其实基本上在语法层

C#程序员学习Android开发系列之SQLite

上篇博客提到过SQLite,它是嵌入式数据库,由于其轻巧但功能强大,被广泛的用于嵌入式设备当中.后来在智能手机.平板流行之后,它作为文件型数据库,几乎成为了智能设备单机数据库的必选,可以随着安卓app打包到apk文件当中. SQLite的官方网站是http://www.sqlite.org/,可以任意下载,上面也有详尽的文档可以参考,这篇博客重点关注SQLite在Android开发中如何使用. 在Android开发中,推荐建立一个类继承自SQLiteOpenHelper来创建数据库操作类,比如:

mac 系统开发android,真机调试解决方式(无数的坑之后吐血总结)

近期学习android开发,安装了ADT开发环境之后,启动模拟器,慢的要死啊,全然不如苹果的好用,没法,自己买个android手机,准备联机调试程序.没想到在这个过程中,遇到了好多的坑,作为一个新人,每一步都过不去,花了将近2个小时,在万能的百度里查了n多次,最终攻克了.在此,做个记录,希望大家不要走我走过的弯路. 1.确保你的android设备真正链接到电脑上了,我在这里遇到过坑,弄了好久,才发现能充电的线,确无法传递数据过去.所以不要以为随便拿一根线,能充电,就能够传递数据了,我就是这么傻傻