android app(3)-Hello world程序分析

    上一节中使用向导生成了第一个程序"Hello world!"。

    这是一个JAVA程序,它运行在Dalvik虚拟机中,不同其它的虚拟机,每个Android应用程序都运行在单独的Dalvik虚拟机中。Dalvik运行的是.dex文件,并非JVM的.class文件。

    Hello world程序生成后,它的入口在MainActivity.java

    

package com.myexample.test0;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
}

MainActivity是程序创建的一个活动,它从Activetity继承。

Activetity是Android app中用户交互界面的组件,它是Android app界面开发中最重要的组件之一,类似于windows开发中的"窗体"。

java.lang.Object
   ↳	android.content.Context
 	   ↳	android.content.ContextWrapper
 	 	   ↳	android.view.ContextThemeWrapper
 	 	 	   ↳	android.app.Activity

Activetity的继承类一般会重载两个方法:

(1)onCreate(Bundle)

    它在Activetity创建时调用,在这里做UI界面的初始化工作。setContentView(R.layout.activity_main)的作用是设置UI界面为资源activity_main。

(2)onPause()

    它在Activetity离开时调用。

一个Activetity可以调用另一个Activetity:使用父类Contex的startActivity()方法,但它必须在AndroidManifest.xml中声明:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myexample.test0"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
<span style="color:#ff0000;">        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity></span>
    </application>

</manifest>

每个资源都会生成一个id,保存R.java中,R.java是编译时自动生成的一个文件,如果要在程序中使用一个资源,例如:

setContentView(R.layout.activity_main);

资源文件在项目的res文件夹中:


drawable-xxxhdpi分别是高,低、中、超高、巨高分辨率的图片文件。

activity_main.xml是activity_main活动的界面布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

TextView是一个文本框,它显示资源hello_word中定义的字体串。


strings.xml是字符串常量的定义:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Test0</string>
    <string name="hello_world">Hello world!</string>

</resources>
如果要在xml中使用一个字符串,activity_main.xml有一个示例:

android:text="@string/hello_world"

styles.xml资源:

<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

另外还一些依赖库,这就是一个Android App的所有文件。

当生成一个app时,它生成的是一个安装文件,后缀是apk。在IDE启动调试或运行时,它会使用adb命令安装到目标机器。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值