`

转载 《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 logcat使用

    以上程序运行后, 在命令行执行 adb logcat -s MyAndroid:I 然后在手机模拟器的屏幕上 点击 拖动鼠标 就能看到相应的日志信息. 这是摘录androidin.com的一篇文章,对于学习Android的朋友来说,可以做工具来参考下。 ...

    Android 开发指南

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

    Android消息推送机制

    用独立进程实现消息的实时推送。服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭(转载)

    Dalvik opcodes

    它可以支持已转换为** .dex格式**的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 作者:姜康 链接:https://www.jianshu.com/p/58f817d176b7 來源:简书 著作权...

    andriod精华学习教程

    Android应用程序通常是运行在一个单独的线程(例如,main)里。这意味着你 的应用程序所做的事情如果在主线程里占用了太长的时间的话,就会引发ANR对 话框,因为你的应用程序并没有给自己机会来处理输入事件或者...

    【最新Android高级面试知识点干货分享(三)】

    【最新Android高级面试知识点干货分享(二)】 转载请说明出处! 七、Java运行时数据区 与 JVM内存模型 优秀博文推荐:https://www.cnblogs.com/czwbig/p/11127124.html $7.1、Java运行时数据区 在JDK8以前,Java运行...

    APKTool批处理版l

    一般而言,一个编写规范的Android程序,会把所有字符串资源都分离出来,放在values的strings.xml文件中,values目录中存放的是默认语言字符串资源(一般为英文)。APK程序在处理字符串资源时会先判断语言环境,然后...

    studytoshare:Java基础 ,一个纯新手的快速入门,言简意赅,来自一个自学者的提要。参考和部分转载[http

    参考和部分转载[] Java简介 图片[] 1.Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。 2.Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。 3.Java语言的特点简单、解释性、...

    反编译apk文件工具及使用方法

    反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html 工具下载: 在http://code.google.com/p/android-apktool/下 载获得,apktool-...

    FreezeYou:冻结,支持免ROOT,轻量级的应用程序

    下载 Download其它 Others欢迎转载,也感谢各位的转载,但转载时如非必要,请您不要修改应用程序或重打包(修改以及重打包都很可能会导致用户后续更新出现麻烦),请直接使用 Release 中包含的 安装包(APK)文件 即可...

    apk反编译得到源代码

    反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html 工具下载: 在http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0....

    xmljava系统源码-apktool:应用工具

    转载自: 工具下载:需用到dex2jar和JD-GUI这2个工具 dex2jar下载地址: JD-GUI下载地址: windows版JD-GUI: Linux版JD-GUI: 步骤: 1.首先找到Android软件安装包中的classes.dex 把.apk文件改名为.zip,然后解...

    高仿版百度地图基于iOS SDK v2.5.0,功能完善!

    代码打包后大小是15.3 MB,论坛文件限制大小只有4MB,没办法我只有传到CSDN上,设置下载分5分的原因是设置点障碍,防止新手乱下载,乱转载不注明出处,Android版当时就出现了这样的情况,我是支持大家相互交流的,...

Global site tag (gtag.js) - Google Analytics