重温Android(1)

本文知识点大多来自 《第一行代码》、Android Developers网站。

Android 系统架构

  • Linux 内核层:底层驱动
  • 系统运行库层:特性支持
  • 应用框架层:提供各种API以构建各种程序
  • 应用层:应用程序

Android 开发特色

  • 四大组件:
    活动Activity、服务Service、广播接收器Broadcast Receiver、内容提供器Content Provider
  • 丰富的系统控件
  • SQLite数据库
  • 多媒体和地址定位
  • 逻辑与视图分离:在布局文件中编写界面,在活动中引入

Android Studio Project 模式结构

Project 模式结构

  • app: 存储着代码和资源,是开发使用的主要目录
  • Libs: 第三方库

app目录结构

  • proguard-rules.pro: 指定代码的混淆规则
  • build.gradle: app模块的gradle构建脚本

src目录结构

  • java:放java代码的地方
  • res:放图片、布局、字符串资源的地方
  • AndroidMainfest.xml : Android 项目的配置文件,四大组件的注册、权限的申请都要在此文件中进行。

res目录结构

  • drawable开头文件夹:放图片
  • mipmap开头文件夹:放应用图标
  • values开头文件夹:放字符串、样式、颜色等配置
  • layout文件夹:放布局文件

主活动的注册

1
2
3
4
5
6
7
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
  • android.intent.action.MAIN决定应用程序最先启动的Activity
  • android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
  • 主活动两个都要有

主活动的执行

1
2
3
4
5
6
7
8
9
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

}
  • 主活动和活动一样,必须先注册后执行
  • AppCompatActivity, 继承自 Activity, 所有的活动必须都要继承 Activity或它的子类才能执行
  • onCreate()方法, 活动被创建时必定要执行的方法
  • setContentView()方法, 为当前活动引入布局, 参数是R类的一个对象, R类包含 res/目录中所有资源的资源 ID

访问资源的方法

  • 代码中: 使用来自 R 类的某个子类的静态整型数: R.string.hello
    string 是资源类型,hello 是资源名称。
    例如: 设置一个 ImageView,以利用 setImageResource() 使用 res/drawable/myimage.png 资源:

    1
    2
    ImageView imageView = (ImageView) findViewById(R.id.myimageview);
    imageView.setImageResource(R.drawable.myimage);
  • XML中: 使用同样的 R 类中定义的资源 ID 对应的特殊 XML 语法: @string/hello
    例如: 为布局添加一个 Button,应该为按钮文本使用字符串资源:

    1
    2
    3
    4
    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/submit" />

创建资源的方法之创建字符串

1
2
3
<resources>
<string name="app_name">My Application</string>
</resources>
  • 在values/strings.xml处创建
  • 其他需要在文件中配置xml文件的资源例如颜色同理