开发:
1、得学会纯手工创建一个Android应用并在手机上跑起来,能完成这个说明你记住了基本开发过程
2、得学会通过IDE创建一个Android应用并在手机上跑起来,能完成这个说明你会用IDE工具了
3、得知道资源都有哪些类型,每个类型资源都有哪些属性,特别是最常用的属性,虽不要求能直接编辑xml文件,但至少要看的明白
4、对布局资源要理解透,否则不能随心所欲地设计界面,可以和eclipse的布局比较一下,多用uiautomator之类的工具看看别人都是怎么布局的
5、对AndroidManifest.xml中的东西都得理解,应用程序要利用系统的功能都和它有关系,理解了它你就搞定了一半
6、Android应用的AndroidManifest.xml,eclipse应用的plugin.xml意味着什么
答:意味着这些应用是在一个较强的开发框架下完成的。因为只有把应用的共性放在一个特殊的地方,框架才能容易提取,才能以一种通用的方式去处理。这也解释了像windows上的记事本类似程序
为什么没有一个xxx.xml,因为原生的Windows或Linux是没有一个较强的开发框架的。那为什么不搞一个呢,可能跟那个时候要解决的核心问题相关,快速开发应用可能不是操作系统的要解决的重点
,但是现在,如果不能快速建立一套丰富的应用,反过来Android操作系统没法存活。另外一个原因可能是那个时候人们的意识没到位,仅仅是在关心解决温饱,还没关心解决吃肉问题。
7、我觉得Android应用的资源编辑这块和Visual Studio中的资源编辑非常类似,都是以一个文件保存这些信息,并且用一只值引用资源。但是我一只没明白为什么要以数值去应用,而不是字符串
8、为什么Visual C++等没有布局概念
答:我觉得是那时的设计工具的人抽象能力不够,觉得界面布局可能是随意的,根本没有规律可言,根本没法抽象出规律。
9、图形界面的层次组成,清楚Activity,View等概念,和PC上的概念有啥相似和不同
10、常用的控件都有哪些,最好能做到一看到别人的界面就知道是用什么控件搞定的
11、为什么Android应用没有像eclipse,MFC框架那样给一个Application概念,用来控制应用的生命周期
答:和框架的设计有关,好像没什么说的,反正这框架这玩意也没有一个标准,也没有绝对的优劣之分,只要能最简单地解决要解决的问题就好。
12、Service类型的应用得会搞一个出来
13、理解Android上使用的RPC机制,它完成了进程之间的通信。不管是Windows和Linux,进程间通信都是很大的一块,Android在这块又简单多了,才一种方式。
14、比较一下Android和Visual C++中的进程内通信
答:Android比较固定,有个Intent的封装。而后者就比较随意了,可以通过函数调用,参数自己随便定。但两者本质还是没有区别的,无非都是信息传递。但我个人还是笔记喜欢经过Android抽象的
Intent。
15、比较一下Android和Visual C++的数据存取
答:Android提供了三种方式,Preference,File和SQLite,并且这些文件一般都保存在自己的地方。而Visual C++就五花八门,随便你玩,文件要放哪儿也随意,文件类型各异,数据库类型各异,甚
至连接书籍库的形式都好多种。总的来说,Android应用还是比PC应用简单很多,所以框架可以给出几种常用的处理方式即可,而PC应用需求各异,框架要做这个事就会变得很臃肿,以至于框架自己
没法稳定。
16、理解Content Provider或者说理解一下Android中的跨应用(比如调用相机、通信录等)。比较一下RPC机制,以及PC上的跨应用。
17、Android如何获取系统的事件通知
答:这个和Windows本质上倒没有啥区别,前者是注册等通知,后者是消息广播机制
18、上面把Android应用的框架基本上都涉及了,剩下的比如多媒体、图形图像、互联网应用、GPS等就简单了,随便找本书看看例子就行,不需要什么理解
19、看看android.jar中都有哪些东东,做到心里对Android框架的功能有个全面认识,Android应用能用android.jar之外的库吗
20、搞定了上面的,剩下的就是不断熟练的过程了
进阶:
1、Dalvik虚拟机和Java虚拟机究竟有啥不同,估计得看看源代码心里才踏实
2、Android操作系统的体系结构,得知道它分为几层,每层大概都是怎样的,得说得出点道道来
3、为啥不像PC那样设计为窗口有最大化最小化(微软,苹果,linux的界面可都是这么设计的),为啥要设计为屏幕栈的形式,好好体会
4、得知道Android SDK中都有些啥东东
5、得学会下载代码、编译代码、刷到手机上
6、通过阅读代码来解决我们遇到的各种问题(终极)