`

转载 《Android程序运行过程,Android》

 
阅读更多

程序的运行由主配置文件开始AndroidManifest.xml

 

<?xmlversion="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.changcheng.android"

android:versionCode="1"

android:versionName="1.0">

<!--

@drawable/icon

@代表R.java

drawableR.java的静态内部类

icondrawable的常量,指定图片资源的ID

-->

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">

<!--

.HelloWorld指向package="com.changcheng.android"下面的HelloWorld类。

我们可以在此添加子包.sub.xxxClass,但不能添加上级包。

-->

<activityandroid:name=".HelloWorld"

android:label="@string/app_name">

<!--意图过滤,程序加载由此开始向外。-->

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

<!--本程序使用AndoridSDK的最低版本-->

<uses-sdkandroid:minSdkVersion="7"/>

</manifest>

 

接下来从HelloWorld类开始:

 

packagecom.changcheng.android;

 

importandroid.app.Activity;

importandroid.os.Bundle;

 

/**

*我们的HelloWorld类,继承自Activity类。

*

*/

publicclassHelloWorldextendsActivity

{

/** Called when the activity is first created. */

@Override

publicvoidonCreate(Bundle savedInstanceState) {

//在此方法中完成界面的绘制

super.onCreate(savedInstanceState);

//显示R.java文件中的layout静态内部类的main常量。它指向mail.xml

setContentView(R.layout.main);

}

}

 

然后再我们再看看mail.xml

 

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<!--

文本视图控件

android:layout_width="fill_parent",它的父窗口是屏幕,所以宽度为整个屏幕。

android:layout_height="wrap_content",它的高度为它所包含的内容高度。如果内容中有一行,就是一行的高度。

android:text="@string/hello",它包含(显示)的文本内容,指向R.javastring静态内部类的常量hello所指向的文本资源ID,文本资源文件是strings.xml

-->

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

</LinearLayout>

 

 

再看看Strings.xml:

 

<?xmlversion="1.0"encoding="utf-8"?>

<resources>

<stringname="hello">HelloWorld,Hello World!</string>

</resources>

 

现在让我们看看掌管资源的主文件R.java

 

packagecom.changcheng.android;

 

publicfinalclassR {

publicstaticfinalclassattr {

}

//图片资源

publicstaticfinalclassdrawable {

publicstaticfinalinticon=0x7f020000;

}

//界面布局资源

publicstaticfinalclasslayout {

publicstaticfinalintmain=0x7f030000;

}

//字符串资源

publicstaticfinalclassstring {

publicstaticfinalintapp_name=0x7f040001;

publicstaticfinalinthello=0x7f040000;

}

}

R.java文件中的所有资源ID全部是自动生成的,我们不可以手动编辑。当我们添加一个图片时,ADT插件,会以图片的名称为常量的名称,然后自动生成对应的资源ID。当我们向strings.xml中添加一个字符串时,ADT插件会以符串的名称为常量的名称,然后自动生成对应的资源ID

 

R.java文件不需要我们手动编辑,我们只需要在需要使用到资源的地方引用这个文件里标识的资源即可!

 

转自 http://hi.baidu.com/%B3%C1%CF%E3%DC%F8/blog/item/d9d06d3594cfca0890ef39ba.html

分享到:
评论

相关推荐

    转载:Android中如何修改系统时间(应用程序获得系统权限)

    本篇文章将深入探讨如何在Android应用程序中获取修改系统时间的权限,并提供相关源码分析。 首先,我们需要理解Android权限系统。Android采用的是基于权限的访问控制模型,每个应用都有自己的沙箱环境,互不干扰。...

    adb.exe 程序运行错误的解决(转载)

    本篇将详细探讨adb.exe程序运行错误的常见原因及解决方法。 首先,当遇到adb.exe运行错误时,通常会显示如“adb server didn't ACK”或“device not found”等错误信息。这可能是由于多种原因导致的: 1. **驱动...

    android log 分析 内含分析过程 转载

    在Android开发中,日志(Log)分析是调试和优化应用程序不可或缺的一部分。它为我们提供了运行时应用程序的行为信息,帮助我们追踪错误,理解程序流程。本文将深入探讨如何进行Android Log分析,结合Handler对象的...

    [转载]Android学习笔记(三):Andriod程序框架.doc

    这篇学习笔记主要涵盖了如何在Eclipse环境下创建一个基本的Android项目以及对Android程序框架的基本理解。以下是对这些内容的详细阐述: 首先,Android程序框架的核心组件是Activity,它是应用程序与用户交互的窗口...

    android好用的相册选择框架(转载)

    在Android开发中,`context`是应用程序环境的引用,如果使用不当,可能导致程序崩溃。此框架的修复措施提高了其健壮性。 在实际使用中,开发者可以轻松地将这个框架集成到自己的项目中,通过简单的API调用来实现...

    深入淺出 Android 深入浅出 Android 繁体

    高级部分涵盖了发布应用到Android Market(现为Google Play)的全过程,包括签名、打包和上传应用。作者强调了持续开发的重要性,鼓励读者不断学习和提升。 附录部分提供了丰富的资源链接,以及获取源码的方式,...

    Android程序打包为APK的方法详解

    Android程序打包为APK是Android应用程序开发中的一个关键步骤,它将Android程序转换为可以在Android设备上安装和运行的安装包文件(APK)。下面将详细介绍Android程序打包为APK的方法详解。 一、生成未签名的安装包...

    [转载]Android学习笔记(四):不使用IDE采用命令行.doc

    这篇【Android学习笔记(四):不使用IDE采用命令行】介绍了如何在命令行环境下建立项目、编写代码、编译和安装应用程序。 1. **建立项目** 使用Android SDK中的`tools`目录下的`android`命令来创建一个新的...

    [转载]Android学习笔记(一).doc

    Android Runtime是基于JAVA的运行环境,核心库包括Dalvik虚拟机,它是专门为手持设备优化的。Dalvik执行文件的格式是.dex。此外,还有对各种媒体格式的支持以及2D和3D图形处理能力。 最后,Android系统基于Linux...

    WebService+Android

    WebService是一种基于XML的协议,它定义了一种松散耦合的方式,使得运行在不同操作系统、不同硬件、不同编程语言环境的应用程序能够互相通信。SOAP是一种用于交换结构化和类型化的信息的协议,而REST则是一种轻量级...

    转载:Android实现异步加载图片 ListView

    6. **Fresco**: 是Facebook开源的一个强大的图片加载库,它采用了特殊的内存和磁盘缓存机制,即使在低内存情况下也能保持应用流畅运行。 7. **ViewHolder**模式: 这是ListView性能优化的关键,通过重用已经创建的...

    Android 开发指南

    本章内容为开发者指南(Dev Guide)/...如果是在Eclipse并且安装了ADT插件的环境下开发Android应用程序,就不需要从命令行使用adb了,ADT插件已经提供了透明的集成。不过,还是可以在调试等需要的时候直接使用adb。

    高仿点评的android应用

    【标题】"高仿点评的Android应用"是一个模拟...通过深入研究这个项目,开发者不仅可以提升Android应用开发的技能,还能了解到如何构建一个完整的、具有实际功能的应用程序,这对于个人技能提升和职业发展都非常有益。

    android好用10个源码!

    3. **4_taskmanager.rar**:任务管理器的应用源码,展示如何显示运行中的应用程序进程和管理它们。通过分析这个项目,你可以学习Android的多任务处理机制,以及如何使用ActivityManager来获取和管理进程信息。 4. *...

    Android设置透明状态栏和透明导航栏

    在Android应用开发中,透明状态栏和透明导航栏可以为应用程序提供更为沉浸式的用户体验,使得内容可以延伸到屏幕边缘,增强了界面的视觉效果。本文将详细介绍如何在Android 4.4及以上版本中实现这一功能。 首先,让...

    安卓NZT9一键新机软件下载-转载版!DEB

    2. 系统优化:软件通过清理缓存、卸载无用应用、关闭后台运行程序等方式,提升手机运行速度,解决手机卡顿、耗电快等问题,让设备保持最佳性能。 3. 隐私保护:除了常规的数据清除,NZT9还可能包含隐私擦除功能,...

    android studio节省C盘空间的配置方法

    完成这些设置后,重启Android Studio并编译应用程序,你会发现在C盘的空间已经得到了有效的释放。如果在打开旧项目时遇到代码页显示红色错误(如import语句错误),可以尝试以下解决步骤: 5.1 在Build菜单中选择...

    <转载>ThinkAndroid

    通过将应用程序分解为可重用的组件,开发者可以更轻松地管理和维护大型项目。此外,它还包含了丰富的工具集,可以帮助开发者快速构建功能丰富的应用。 1. **模块化设计**:ThinkAndroid采用了模块化的架构,允许...

Global site tag (gtag.js) - Google Analytics