比如在OnClickListener()中,如果要访问外部类的变量,则该变量须是成员变量。如果不是成员变量,是局部变量的话,则该局部变量需要是final类型。但是如果是final类型,就不能为该变量赋值了,因为final不可更改。
需要研究android的编译过程,则首先需要了解makefile文件。所以现在就开始从最基本的学习——了解makefile。
1.makefile的语法规则:
target...:prerequisites...
command
...
...
说明:
- target:是一个目标文件,可以是Object File,也可以是执行文件。
- prerequisites:要生成那个target所需要的文件或者目标
- command:make需要执行的命令(任意的shell命令)
这表明的是一个文件的依赖关系,即target这一个或者多个目标文件依赖于prerequisites中的文件,其生成规则在command中定义。
注:在执行make时,如果prerequisites中有一个以上的文件更新时间比target文件晚,则command所定义的命令就会被执行。
2.一个简单makefile文件的示例(网上找的,为了说明语法规则,别介意哈)
edit:main.o kbd.o
cc -o edit main.o kbd.o
main.o:main.c defs.h
cc -c main.c
kbd.o:kbd.c defs.h command.h
cc -c kbd.c
clean:
rm edit main.o kbd.o
说明:
- 在该文件所在的目录下,直接输入make命令就可以生成edit可执行文件。
- target包括:edit和中间的目标文件("*.o")
- prerequisites包括:冒号后面的 .c 文件和 .h 文件
- command一定要以一个Tab键作为开头
- clean:上面代码中的clean只不过是一个动作名字,和C中的lable一样。其冒号后面什么也没有,那么make就不会去找文件的依赖性,也就不会执行其后定义的命令。如果要执行后面的命令,则需在make命令后明显的指出这个lable的名字。eg:make clean
3.make的工作过程
在默认方式下,也就是我们只输入make命令,那么
- make会在当前目录下找makefile文件
- 如果找到该文件,它会找文件中第一个目标文件作为最终的目标文件,如果最终目标文件不存在或者后面的依赖文件的修改时间比较晚,则重新执行后面的命令生成最终的目标文件
注:make会一层一层的去找文件的依赖关系,如果出现错误则make直接退出并报错。
4.makefile中变量的使用:
在makefile一开始这样的定义:
objects=main.o kbd.o
于是在makefile中以“$(objects)”的方式就可以使用这个变量,如下:
edit:$(objects)
cc -o edit $(objects)
main.o:main.c defs.h
cc -c main.c
kbd.o:kbd.c defs.h command.h
cc -c kbd.c
clean:
rm edit $(objects)
后续任务:makefile学习 shell命令学习
目标:makefile基本知识掌握后,可以写一个简单的makefile文件测试
当今是移动互联网的时代,这边是IOS如日中天,那边是Android 风生水起,作为 Lamper, 虽然所依赖的技术也地位坚挺,在互联网的薪资水平也是节节高升,但是总觉得在移动大潮中,咱只是配角一枚。移动开发者做出很炫酷帅的应用,咱们只能默默地在后面写脚本、调用数据库、写API,离真正的移动开发觉得很遥远。
而实际上不是如此,早在 2010年,PhoneGap 就进入了人们的视野。这一移动应用开发的利器的出现,我们 Lamper 们,也可以写移动应用,并发布在应用商店上,小则过把移动应用开发的瘾,大则还可以赚个盆满钵盈。最最主要的,写出来的代码还是跨平台的,主体代码“Write once,Run everywhere"!这对于咱这种啥都想复用的素称“懒人”的程序猿,真是一大福音。
PhoneGap 是一个开源的开发框架,使用HTML5,CSS3和JavaScript来构建跨平台的的移动应用程序。与传统的 Mobile Web App 不同,它使开发者能够利用iPhone,Android,Windows Phone等七个平台智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,也不再需要依赖于浏览器来运行,开发完成后,可以像本地 App 一样运行。 至于特定功能的支持方面,对于流行的三大平台,IOS、Android、Windows Phone 做到了全支持。请见:http://en.wikipedia.org/wiki/PhoneGap
当然,他也有不同于本地 App 的地方,有强的地方,也有弱的地方。强的地方在于跨平台, HTML5、CSS3和 JavaScript 都是 Web 标准,写好了之后,可以在支持 Web 标准的系统上运行,也不要忘了,实际上也是在浏览器(严格讲是浏览器内嵌实例)上运行,因而有其弱的地方。应用的界面,也是用HTML、CSS或者Javascript 来绘制的,所以性能方面会比用相关平台所特定的开发语言开发出来的本地应用差一些。
那这样做出来的东西,会不会让人觉得很山寨,或者不被认可呢,完全可以不必担心。至于PhoneGap本身,也是相当地有生命力,不但开发社区蓬勃发展,而且获得了苹果、 Adobe、IBM 等权威厂商的认可,更是加入了 Apache 基金会。开发出来的应用,只要应用本身能保证质量,完全可以顺利地在苹果 appstore 和 Android 电子市场上架。
下面是它的标志性事件。
2011年7月29日,PhoneGap发布了1.0版产品。
2011年10月4日被Adobe收购
2011年10月成为 Apache 基金会下面的项目,叫 Apache Callback,2011年11月28日改名为 Apache Cordova。
现在已发布1.4.1版
对于PhoneGap的基本介绍就到这里,下面会对 PhoneGap 的开发,做一系列的讲述。