Android程序模块1

1、AndroidManifest.xml 文件
AndroidManifest.xml是每一个应用都需要的文件。位于工程文件根目录下,描述了程序包的一个全局变量,包括的应用组件(activities, services等等)和为每个组件的实现类, 什么样的数据可以操作, 以及在什么地方运行。这个文件的一个重要数据(概念)是intent 过滤器。这个过滤器描述了何时何种情况下让activity 启动。当一个activity想要执行一个动作, 例如打开一个联系人选取屏幕, 会创建一个Intent对象. 该对象包含了很多的描述信息, 描述了你想做什么操作, 你想处理什么数据, 数据的类型, 以及一些其它的重要信息. Android拿这个Intent的信息与所有应用的intent 过滤器比较, 找到一个最能恰当处理请求者要求的数据和action的activity   。另外还要声明您的应用Activities,Content Providers,Services   ,和Intent Receivers,你也可以在AndroidManifest.xml文件中指定权限和instrumentation(安全控制和测试)。
一个AndroidManifest.xml文件的例子: 
<?xml version="1.0" encoding="utf-8"?>
<manifest   xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.my_domain.app.helloactivity">   

<application android:label="@string/app_name">
     <activity class=".HelloActivity">
         <intent-filter>
            <action android:value="android.intent.action.MAIN"/>
                <category                                 
                      android:value="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
    </manifest>
这里记录了一些通用特性: 
几乎所有的AndroidManifest.xml 文件(同其它的Android文件一样)都会包含一个命名空间的声明xmlns:android="http://schemas.android.com/apk/res/android"在第一个元素中. 该声明使标准Android属性在该文件中得以使用, 该属性为文件的xml元
素提供了大部分数据. 大多数AndroidManifest.xml 文件仅包含一个<application>元素, 该元素定了这个程序包内所有应用层面上可用的组件和属性. 
下面列出了AndroidManifest.xml 这个文件详细的结构大纲, 描述了所有可用标签。
<manifest> 
文件根节点, 描述了程序包的所有内容。在其节点下面内可以放置:
<uses-permission> 
请求一个安全授权, 必须被授予该权限, 您的程序包才能正确的操作. 查看安全模块文档, 了解有关授权的更多信息. 一个manifest可以包含零个或多个这样的节点。
<permission> 
声明一个安全授权, 用来限制哪些应用可以访问您的程序包内的组件和特有机制. 查看安全模块文档, 了解有关授权的更多信息. 一个manifest可以包含零个或多个这样的节点。
 
<application> 
描述程序包内应用级别组件的根节点. 该节点能够描述应用程序的全局(和/或)默认属性, 例如标签, 图标, 主题, 需要的授权, 等等. 一个manifest可以包含零个或一个这样的节点(多个application 节点是不允许的). 在该节点下, 可以包含零个或多个以下每个组件的声明: 
<activity> 
Activity 是应用于用户交互的最主要机制. 当一个应用运行的时候, 用户看到的第一个屏幕就是activity, 并且, 用户所使用的其它绝大多数屏幕(界面)也会是activity。
<service> 
Service 是一个在后台任意时刻都可以运行的组件. 同activity 标签一样, 你可以选择包含一个或多个<intent-filter>元素; 
<provider>
ContentProvider组件是用来管理数据持久化及数据发布的, 发布的数据可以被其它的应用访问. 

2、Activity
Activity是一个与用户交互的系统模块,几乎所有的Activity都是和用户进行交互的,所以在每个Activity进行 初始化的时候,都要执行 setContentView (View)函数来指定 界面UI。在Activity中有两个重要的函数:onCreate(Bundle)函 数是 你 进 行初 始化 的 地方, 这 个也是执行setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML编制的UI界面,可以使UI和具体实现完全分离。 onPause()函数是处理用户离开当前Activity的地方。更重要的是,任何在当前Activity中的任何改变都要在这个函数中提交。一般是使用 ContentProvider 来保存数据当从 一个界面跳到另一个界面的时候,实质上是从一个Activity跳转到另一个Activity的时候。 使用函数Context.startActivity()来实现。另外,所有的Activity都要在AndroidManifest.xml中注册。
Activity的生命周期是用Activity stack来管理的。当一个新的Activity启动,就把这个Activity放在Stack 的顶部,然后这个Activity就变成了一个运行的Activity。以前
运行的Activity现在被压在Stack的地步,处于Pause状态。只有Stack顶部的Activity才可以在前台运行,且处于活动状态。

Activity有四种状态:
活动状态,当Activity处于Stack顶时,就是手机当前的现实屏幕,这是Activity就处于activity或者运行状态。
运行但是失去焦点,当Activity还处于运行状态时,但是屏幕是有另外一个Activity处于文档处于焦点状态,当前的Activity就处于 pause。
停止,当Activity被另一个Activity完全覆盖的时候,就被停止了,其实就是虽然在运行,但是用户却看不见。
结束,当Activity处于pause或者stop时,系统可以结束Activity,回收资源,这时Activity就是处于结束状态了。
处于结束状态的是Activity,如果要使用户可见,只要重启才可以。
下面的图表示了Activity的生命周期。

Activity 的生命周期是被以下的函数控制的。
public class Activity extends ApplicationContext {
     protected void onCreate(Bundle icicle);
     protected void onStart();
     protected void onRestart();
     protected void onResume();
     protected void onFreeze(Bundle outIcicle);
     protected void onPause();
     protected void onStop();
     protected void onDestroy();
}

一般的程序都有几个界面,所以一个程序都有几个Activity。在Activity进行转换的时 候需要借助函数startSubActivity(Intent I, int type);第一个参数为指定的需要跳转的 Activity。在这个参数中含包含了原始的Activity需要向跳转的目标Activity需要传递的数 据。此数据是使用函数putExtra()放入Intent;
Intent i = new Intent(this, NoteEdit.class);
    i.putExtra(NotesDbAdapter.KEY_ROWID, id);
    startSubActivity(i, ACTIVITY_EDIT);

3、View
一个界面就是一个Activity,但是界面上会有很多的控件之类的,只要是用户可以看到的,这些东西都是view。一个View占有一个长方形的地方,而且View是可以嵌套的。View还可以负责响应用户的动作。所有的View的结构都是被安排在树形结构中。你既可以在代码中改变View的结构树,也可以在XML文件中去作修改。View也是所有的布局管理器的基类。在创建一个View的结构树的时候,一个会有几个你会很感兴趣的操作。设置属性,比方说一个TextView,应该会有一些属性值和一些函数去设置比如像字体,颜色等的属性。设置焦点,使用requestFocus()可以设置焦点。
接下来是最重要的,就是注册监听事件的函数,一个的View都是相应的函数来设置监听事件。
还有一个是设置可见性的函数。
下面的这一段代码是在xml中配一个Button,然后在Activity中获得这个Button的实例,然后可以设置这个Button的监听函数。
Xml中的代码如下:
<Button android:id="@+id/my_button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/my_button_text"/>
Activity中的代码如下:
Button myButton = (Button) findViewById(R.id.my_button);
然后是设置监听函数:
myButton,setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//To-Do
}
});
Android框架是负责组织,显示,绘制Views的。一般不直接在View上调用函数,除非是自己实现一个ViewGroup.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值