第一章 开始启程——你的第一行Android代码##
Android系统架构
Linux内核层、系统运行库层、应用框架层、应用层
Android系统四大组件
活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)
项目目录
app目录:项目的代码资源等内容都放在这个目录下。
1.build 编译时自动产生的文件
2.libs 项目中使用的第三方jar包
3.androidTest 编写测试用例
4.java 放置所有java代码的地方
5.res 项目中所有使用到的图片、布局、字符串等资源都要存放到该目录下,该目录还有很多子目录,图片存放在drawable下,布局存放在layout下,字符串存放在values下,图标存放在mipmap下。
6.AndroidManifest.xml 整个android项目的配置文件,在程序中定义的四大组件都需要在这个文件中注册,另外还可以在这个文件中给应用程序添加权限声明。
7.test 编写Unit test测试用例,对项目进行自动化测试的另一种方式
8.gitignore 将app模块内指定的目录或文件排除在版本控制之外,作用和外层的.gitignore类似。
9.app.imi 不需要关心
10.build.gradle app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置。
11.proguard-rules.pro 文件用于指定项目代码的混淆规则。
代码学习
```java
package com.example.helloworld;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class HelloWorldActivity extends AppCompatActivity {
private static final String TAG = "HelloWorldActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_world_layout);
Log.d(TAG, "onCreate execute");
}
}```
HelloWorldActivity
是继承自AppCompatActivity
的,这是一种向下兼容的Activity
。Activity
是Android系统提供的一个活动的特性(AppCompatActivity
是Activity
的子类)。
HelloWorldActivity
中有一个onCreate()
方法,这个方法是一个活动被创建时必定要执行的方法。
第二行代码setContentView(R.layout.hello_world_layout);
中引入了一个hello_world_layout
布局,布局文件在res/layout目录中,hello_world_layout.xml
文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hello_world_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.helloworld.HelloWorldActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
第三行代码是日志代码:日志的工具为Log
Log.v()打印最为琐碎的、意义最小的日志信息
Log.d()打印调试信息
Log.i()打印数据
Log.w()打印警告信息
Log.e()打印错误信息
eg:Log.d(TAG, "onCreate execute");
两个参数:tag传入当前类名即可,msg想要打印的具体内容
在Logcat中看到打印信息,并且可以进行筛选,logd+TAB键可直接进行代码补全。