Android学习笔记(二)App工程文件分析

时间:2022-03-14 23:29:13

app工程文件分析

关于如何创建一个最简单的android app请参照链接:

《 android学习笔记(一)环境安装及第一个hello world 》http://www.zzvips.com/article/144221.html

创建完的工程文件如下图所示,本文对一些主要的文件进行分析。

Android学习笔记(二)App工程文件分析
src文件分析

app源文件如图:

Android学习笔记(二)App工程文件分析
打开源文件 mainactivity.java 可看到如下代码:

Android学习笔记(二)App工程文件分析
源码主要功能如下:

app源文件目录

?
1
package com.example.firstapp;

导入app所需的类

?
1
2
3
import android.os.bundle;
import android.app.activity;
import android.view.menu;

mainactivity继承自activity

?
1
public class mainactivity extends activity

重载oncreate方法,使用布局文件初始化activity

?
1
2
3
4
5
@override
protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
}

重载oncreateoptionsmenu方法,使用布局文件初始化menu

?
1
2
3
4
5
6
@override
public boolean oncreateoptionsmenu(menu menu) {
  // inflate the menu; this adds items to the action bar if it is present.
  getmenuinflater().inflate(r.menu.main, menu);
  return true;
}

gen与res文件

gen文件夹下r.java文件在创建工程时自动创建,为只读文件,定义了项目所有资源的索引,里面的每个静态类都与一个资源对应。

例如:

1. 类drawable与res中包含drawable字样的文件夹关联

2. 类layout与res中layout文件夹关联

3. 类menu与res中menu文件夹关联

res文件夹下是app所使用的资源文件,其中:

1. drawable与icon相关

2. layout与布局相关

3. menu与menu布局相关

4. value字样的定义了项目配置中使用的值

举例: 界面中的文字

value的文件夹下的strings.xml文件中定义了名称为hello_world的字符串,其值为" hello world! "
layout文件夹下的activity_main.xml中定义了textveiw中的文字为hello_world字符串。
android menifest.xml

app的主要配置文件,内容如下:

配置app信息

?
1
2
3
package="com.example.firstapp"
android:versioncode="1"
android:versionname="1.0"

配置sdk等级

?
1
2
android:minsdkversion="8"
android:targetsdkversion="19"

配置app资源

配置app的图标、名称及主题等,其资源与res文件夹对应。 

?
1
2
3
4
android:allowbackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/apptheme"

 
配置app的activity和app名称

?
1
2
android:name="com.example.firstapp.mainactivity"
android:label="@string/app_name"

配置app的intent-filter

?
1
2
3
4
5
6
action
 
  android:name="android.intent.action.main"
category
 
  android:name="android.intent.category.launcher"

最后

以上为app工程文件分析,个人理解,仅供参考。