《第一行代码》第一章
《第一行代码》第一章总结
《第一行代码》第一章,也参考了 http://c.biancheng.net/android/ 网站的Android的教程。
基础知识:
-
Android 是基于 Linux 内核的软件平台和操作系统,是 Google 在 2007 年 11 月 5 日公布的手机系统平台,早期由 Google 开发,后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(Software Stack,又名以软件叠层)的架构,主要分为三部分。底层以 Linux 内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以 Java 作为编写程序的一部分。
-
安卓系统构架
-
Android 四大组件分别是活动(Activiy)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider). 内容提供器为应用程序之间共享数据提供了可能。
HelloWorld的创建:
app下文件夹:
下面分别介绍各个目录或文件的作用:
目录/文件 | 作用 |
---|---|
src | 包含应用程序的所有源代码。在 src 用的 Activity,MainActivity.java 就是在创建项目的时候创建的一个 Activity,在 Activity 中可以编写控制 View 的逻辑。 |
build | source 包中有一个 "R.java" 文件。R 类中包含 4 个静态内部类:attr、drawable、layout 和 string,分别代表属性、图片资源、布局文件及字符串的声明。R.java 文件是资源索引类,由 Eclipse 自动生成,开发者不用去修改和维护里面的内容,但是这个文件却非常有用,对 res 下资源的操作都会导致 R.java 文件的重新编译。R.java 中定义的常量类也可以间接帮助 Activity 完成对资源的应用。Android 这样设计的好处是使得复杂的资源通过专门的类来管理而让程序中的代码变得整齐、强壮,并且减少程序出错和 bug 的产生。 |
assets | 通常放置一些原始资源文件,会在 Android 打包的时候原封不动地一起打包,安装时会直接解压到对应的 Android 打包的时候原封不动地一起打包,安装时会直接解压到对应的 assets 目录中。这里通常放置一些项目中用到的多媒体资源等。 |
res | 通常放置的是 Android 要用到的各种程序资源。其中,常见的子文件夹有 drawable、layout、values 等。其中,drawable 目录放置应用到的图片资源;layout 目录放置一些与 UI 相关的布局文件,都是以 XML 文件方式保存;values 目录中放置的是一些字符串、数组、颜色、样式和动画等资源,values 目录中的每一个文件都会转化成 R.java 中的一个静态类,文件中的每一个资源都会转化成 R.java 中对应静态类的静态整型常量,这样 Activity 中通过一个解析器就可以获取对应的资源。 |
AndroidManifest.xml | 是整个项目的配置资源,里面配置的内容包括当前应用程序所在的包、应用程序中的 Activity、应用程序的访问权限等。 |
-
将左上角项目结构模式的Android切换为Project,在app 里的 AndroidManifest.xml 注册四大组件,我在AndroidManifest.xml 里改动了helloworld的程序名。
-
src/main/java/XXX 中存放着所有的活动。
-
Android 讲究逻辑与视图分离,通用的做法是在布局文件中编写页面,然后在活动中引进来。
-
res 中 有 drawable 存放图片,mipmap 开头的放应用图标,values 开头放字符串、样式、颜色,layout存放布局。
结构:
其他:
-
很多Android 开源项目将代码托管到 jcenter 上
-
最外层 build.gradle 中minifyEnabled 用于指定是否对项目的代码进行混淆,proguardFiles 用于指定混淆是的规则文件,第一个 proguard-android.txt 是在 Android SDK 目录下的,里面是所有项目通用的混淆规则,第二个 proguatd-rules.pro 是在当前项目的根目录下的,里面可以编写当前项目特有的混淆规则。
-
日志工具代替 System.out 。
-
SDK :
SDK 目录中 samples 是 Android SDK 自带的默认示例工程,里面的 apidemos 强烈推荐初学者学习。