#基本知识
+ Android 是一个面向移动设备的软件堆层,包含了一个操作系统,中间件和关键的应用程序;
+ 每个 Android 应用程序都通过 Dalvik 虚拟机在自己的进程中运行;
+ Android 应用程序是用 java 语言写的,通过 aapt 工具把编译好的 java 代码和应用程序所需要的所有数据、资源文件打包成 Android 包,即后缀为.apk 的压缩文件,这个文件是发布应用程序和在移动设备上安装应用程序的媒介,是用户下载到他们设备上的文件。一个.apk
文件中的所有代码同属于一个应用程序;
+ 2007.11Android发布,2008.9 Android SDK 1.0发布,10月Android开源,
+ Applications、Application Framework--Java,Libraries、Android Runtime-----JNI + C/汇编 Linux Kernel --------C/汇编
+ Android应用程序构成:Activity、Service、Broadcast Receiver、Content Provider、Intent
+ Android SDK、Eclipse+ADT
+ 支持Android的ARM硬件平台:ARMv7,支持NEON SIMD,
+ Android,作为一个系统,是一个运行在Linux2.6 核心上的JAVA基础的操作系统
#开发环境搭建
+ JAVA
+ Eclipse
+ Android SDK:离线安装
+ ADT:离线安装
如果不想被软件兼容的事麻烦,使用adt-bundle-windows-x86开发环境即可,它集成了eclipse、sdk和adt,解压即可使用,可以使用解压目录下的SDK Manager.exe更新SDK,由于默认选的google源更新不成功,在Tools-Options中填入东软源即可。
+ 由于网速原因,Android SDK Manager每次加载出来的内容可能会不一样,我第一次加载(使用东软的源)就有很多东西没有加载出来,包括镜像,所以导致模拟运行时无法创建AVD,后来重新打开Android SDK Manager加载的时候又加载出来了,并且多了很多之前没有加载出来的东西。
+ Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
#Android开发
+ 在Eclipse中创建一个Android工程之后,在根目录下会有这么几个文件:AndroidManifest.xml 文件是一个指定全局设定的地方,包括如程序许可
,活动,和意向过滤器等的设定;你会在项目引用里看到一个库,那就是 android.jar(Eclipse可以允许你增加用户定义的外部库);res 目录
是你项目资源放置并且编译你的应用程序的地方,res目录包含3个子目录:drawable, layout, 和 values,drawable 和 layout 分别放置并显示图形
和布局。而values 目录放置遍及程序全局的字符串;assets 目录用来放置原料文件的。在这个目录中可以包含为流媒体和动画准备的
音频文件;src 目录包含项目里所有的源文件;当项目一创立,就会包含两个文件 R.java和<活动>.Java,R.java 是一个由 Android plugin 自动产生并添加到你的应用程序中的文件。这个文件包含到 drawable,layout 和 values 目录的指针;
+ 创建项目之后,Run As Android Application时出现AVD error:No compatible targets were found,可以在弹出的窗口中创建
一个Android虚拟设备(AVD)或者直接在Windows--Android Virtual Device Manager中创建AVD或者直接在工具栏一行点击手机图标也可以创建AVD,Device一栏根据分辨率来选,Target就是Android版本(在Manifest.xml中有最低的版本号定义,不低于此即可)。
+ AVD创建好之后可以Start启动模拟器,如果出现‘an android virtual device that failed to load’,可以尝试着将分辨率和RAM都调小一点,
另外在Console中会提示错误信息的,我的提示没有安装x86加速器,这个确实在SDK Manager中安装失败了,所以我重新将镜像改为了ARM镜像,
换为ARM镜像之后提示"Running an x86 based Android Virtual Device (AVD) is 10x faster.We strongly recommend creating a new AVD."这个说的是使用一个x86的模拟器比使用arm内核的要快10倍,所以这只是个提示,让你换成内核为x86的模拟器呢!不换的话你就只能等了,操作每一步都可能要等个好三四秒。但是x86加速器在Android SDK Manager中安装失败并提示"Not compatible with Windows",需要在BIOS中开启硬件虚拟VT-x的功能。自带的AVD在ARM模拟器中运行太慢和x86中需开启硬件虚拟化都走不通了,可以考虑第三方模拟器,海马玩模拟器(Droid4X)是迄今为止在性能,兼容性和操控体验方面最好的安卓模拟器。不过海马玩模拟器老是连不上Eclipse,因此思来想去最好还是用自带AVD,对于简单的学习可以容忍反应慢一点,比较大的程序就直接真机测试就OK了。
+ Activity是android应用程序的用户接口。一个Activity中可以放置很多控件。如:TextView、Button等Activity也可以理解为控件的容器;
+ Android各个版本开发的差异比较大,建议对使用的版本有所了解之后选择一个合适的版本进行开发,Android 4.0以前、Android4.4、Android5.0、Android6.0、Android7.0
#Android应用开发入门
+对于Android应用程序的开发,第3层次以下的内容是不可见的,仅考虑系统API即可;
+aapt(Android Asset Packaging Tool):用于建立zip兼容的包(zip、jar、apk),也可用于将资源编译到二进制的assets;
+ adb(Android Debug Bridge,Android调试桥):使用adb工具可以在模拟器或设备上安装应用程序的.apk文件,并从命令行
访问模拟器或设备。也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起;
+ android工具:android工具是一个脚本,用于创建和管理Android Virtual Devices (AVDs);
+ DDMS(Dalvik Debug Monitor Service,Dalvik调试监视器服务):这个工具集成了Dalvik,能够在模拟器
或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观
察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。
+ Android应用程序的基础是Android提供的各个Java类,这些类组成了Android系统级的API;