一、Android的系统架构
Linux内核层:主要为Android设备提供底层驱动
系统运行库层:为Android系统提供主要特性支持,另外还提供了一些核心库能够允许开发者使用Java语言编写Android应用
应用框架层:主要提供了构建应用程序可能用到的各种API
应用层:所有安装在手机上的应用程序都属于应用层
二、Android应用开发的特色
四大组件:Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)、Content Provider(内容提供器)
丰富的系统控件:如Button ListView 等
SQLite数据库:自带的轻量级运算速度极快的嵌入式关系型数据库
强大的多媒体:如音乐、视频、录音、拍照等
地理位置定位:轻松实现LBS功能
三、分析第一个Android项目
app:项目代码、资源等全部在该目录下(主要目录)
build:包含了编译时自动生成的文件
libs:第三方jar包目录
androidTest:编写测试用例的,用于自动化测试
java:存放java源代码的目录(主要目录)
res:项目资源目录,如图片、布局、字符串等(主要目录)
AndroidMainifest.xml:本项目的配置文件(经常用到)
Build.gradle:app模块构建脚本(重要)
四、分析Helloword项目代码
AndroidMainifest.xml
//对HelloWorldActivity这个活动进行注册,没有注册的活动是不能使用的
<activity android:name=".HelloWorldActivity">
<intent-filter>
//表示该活动是主活动,点击应用启动首先运行这个活动
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
HelloWorldActivity.java
//所有活动必须继承自AppCompatActivity这个活动基类
public class HelloWorldActivity extends AppCompatActivity {
//onCreate方法是这个活动创建时必会执行的方法
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//引入该活动的布局
setContentView(R.layout.hello_world_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_activity"
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">
//这就是控件,看到的HelloWorld文字信息
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
五、其他知识
在代码中通过R.string.app_name格式来引用字符串
在XML中通过@string/app_name格式来引用字符串