一、目录概解:
1、layout目录下的activity_main.xml:
该文件用于定义
Andriod应用用户界面,其中
TextView代表一个文本框,
Button代表一个普通按钮,
Andorid:id指定该控件的唯一标识,
Andorid:layout_width指定该界面组件的宽度,
Andorid:layout_heigth指定该界面组件的高度;
2、app/src目录:
该目录是
Android项目的源代码,并且在
main/java/org/crazyit/helloworld目录下有一个
MainActivity.java文件它就是
Andorid项目的
java文件 .
public class MainActivity
extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState) ;
// 使用 ctivity_main.xml 文件定义的界面布局
setContentView(R.layout. activity_main) ;
Toolbar toolbar = (Toolbar) findViewById(R.id. toolbar) ;
setSupportActionBar(toolbar) ;
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id. fab) ;
fab.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar. make(view , "Replace with your own action" , Snackbar. LENGTH_LONG)
.setAction( "Action" , null).show() ;
}
}) ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState) ;
// 使用 ctivity_main.xml 文件定义的界面布局
setContentView(R.layout. activity_main) ;
Toolbar toolbar = (Toolbar) findViewById(R.id. toolbar) ;
setSupportActionBar(toolbar) ;
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id. fab) ;
fab.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar. make(view , "Replace with your own action" , Snackbar. LENGTH_LONG)
.setAction( "Action" , null).show() ;
}
}) ;
}
3、res目录解析:
res目录存放
Android项目的各种资源文件,比如
layout存放界面布局文件,
values目录下则存放各种
XML格式的资源文件,例如字符串资源文件:
strings.
xml,颜色资源文件:
colors.xml,尺寸资源文件:
dimens.xml,
drawable-
ldpi、
drawable-
mdpi、
drawable-
hdpi、
drawable-
xhdpi这4个子目录则分别用于存放低分辨率、中分辨率、高分辨率、超高分辨率的4种图片文件;
4、AndroidMainfest.xml文件:
这个文件是
Android项目的系统清单文件,用于控制
Android应用的名称、图标、访问权限等整体属性,除此之外,
Android应用的
Activity、
Service、
ContentProvider、
BroadcastReceiver这4大组建都需要该文件中配置;
5、build目录:
用于
Android Studio自动生成各种源文件(包括
R.java也放在该目录的子目录下);
6、lib目录:
存储
Anroid项目所需要的第三方
JAR包也就是各种
so库;
7、src目录详解:
存储
Android项目开发的各种源文件,包括各种
Java源文件(放在
main/java子目录下)、各种资源文件(放在
main/res子目录下)、和
AndroidMainfest.
xml文件,除此之外,
src目录还包含一个
Androidtest子目录,该目录下存放的是
Android测试项目;
8、对于Adnroid开发者而言,重点关注以下两个目录:
src:对于
Adnroid Studio项目的
app/src/main/java 子目录的各种
java文件;
res:对于
Android Studio项目的
app/src/main/res 子目录的各种资源文件;
9、在Android项目中的build.xml文件包含了如下常用生成的target:
clean :清除项目生成的内容,恢复项目到原始创建状态;
debug :打包一个
Android应用的
debug调试
apk包,使用
debug key进行签名;
release :打包一个发布用的
Android应用
apk包;
test :运行测试,要求该项目必须是一个测试项目;
install :将生成的调试用的
apk包安装在模拟器上;
uninstall:从模拟器上卸载该程序;
10、AndroidMainfest.xml文件清单以及说明:
<?
xml version=
"1.0"
encoding=
"utf-8"
?>
<!-- 指定该 Adnroid 应用的包名,该包名可用于唯一标识应用与该程序 -->
<manifest xmlns: android = "http://schemas.android.com/apk/res/android"
package= "store.tvos.com.helloworld" >
<application
android :allowBackup= "true"
<!-- 指定该 Andorid 应用程序的标签以及图标 -->
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
<!-- 定义 Android 应用的一个组件, Activity ,该 Activity 的类为 HelloWrold ,并指定该 Activity 的标签 -->
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<!-- 指定该 Andorid 应用程序的函数入口 -->
<action android :name= "android.intent.action.MAIN" />
<!-- 指定该 Andorid 应用时运行该 Activity-->
<category android :name= "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<!-- 指定该 Adnroid 应用的包名,该包名可用于唯一标识应用与该程序 -->
<manifest xmlns: android = "http://schemas.android.com/apk/res/android"
package= "store.tvos.com.helloworld" >
<application
android :allowBackup= "true"
<!-- 指定该 Andorid 应用程序的标签以及图标 -->
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
<!-- 定义 Android 应用的一个组件, Activity ,该 Activity 的类为 HelloWrold ,并指定该 Activity 的标签 -->
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<!-- 指定该 Andorid 应用程序的函数入口 -->
<action android :name= "android.intent.action.MAIN" />
<!-- 指定该 Andorid 应用时运行该 Activity-->
<category android :name= "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
二、基本的组件介绍:
Android应用通常由一个或多个基本组件构成
1、Activity:
这个组件是
Android应用中负责与用户交互的组件,通过调用
setContentView()来显示指定的组件,这个方法接受以对象作为参数以及布局管理资源的
ID作为参数;
2、View:
这个组件是所有
UI控件、容器控件的基类,他们的关系是
Activity通过调用
setcontentView()方法,这个方法的参数是一个以
View对象为参数的函数;
3、Service:
这个和
Activity是并列的,只不过
Activity是可以 直接显示给用户的,而
Service是运行于后台,看不见的,主要为其它组件提供后台服务货监控其它组件的运行状态,同样这个组件要继承一个基类:
Service;
4、BroadcastReceiver:
这个是Android中一个很重要的组件,顾名思义:广播消息接收器,类似于编程过程中的时间监听器,
5、Contentprovider:
对于
Android应用而言,他们是相互独立各自运行在各自的进程中,没有数据的交互,而
Contentprovider就是将两个或者多个程序组建起来进行数据的交互,比如让
A进程里面需要被外部访问的Data放在第三方缓冲区,然后进程
B进行数据访问,这样就实现了进程间的数据交互;
->
insert(Uri,ContentValues):向
Contentprovider插入数据
;
->delete(Uri,ContentValues ):删除
Contentprovider中指定的数据;
->
update(
Uri,ContentValues ,
Srting,
String[]):更新
Contentprovider中指定的数据;
->
query(
Uri,
String[],
String,
String[],
String);从
Contentprovider中查询数据
;