|
本帖最后由 meigui 于 2011-8-30 22:28 編輯 第四部分: 源代碼的各個(gè)文件
Android.mk 是整個(gè)工程的“Makefile”,其內(nèi)容如下所示:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := samples
# Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := HelloActivity
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
這個(gè)文件在各個(gè) Android 的工程中都是類似的,其中 LOCAL_PACKAGE_NAME 表示了這個(gè)包的名字。LOCAL_MODULE_TAGS 表示了模塊的標(biāo),在這里使用的是samples,正式的應(yīng)用程序(packages 目錄中的應(yīng)用)中多使用 eng development。
AndroidManifest.xml 是這個(gè) HelloActivity 工程的描述文件,其內(nèi)容如下所示: - <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.helloactivity">
<application android:label="He llo, Activity!">
<activity android:name="He lloActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
復(fù)制代碼 其中 package 用于說(shuō)明這個(gè)包的名稱,android:labeapplication 中的內(nèi)容是表示這個(gè)應(yīng)用程序在界面上顯示的標(biāo)題,activity 中的 android:name 表示這個(gè) Android 的活動(dòng)的名稱。
文件 src/com/example/android/helloactivity/HelloActivity.java 是程序主要文件,由 JAVA 語(yǔ)言
寫成 - package com.example.android.helloactivity;
import android.app.Activity;
import android.os.Bundle;
public class HelloActivity extends Activity {
public HelloActivity() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_activity);
}
}
復(fù)制代碼 com.example.android.helloactivity 表示的是這個(gè)包的名稱, 在文件的頭部引入了兩個(gè)包android.app.Activity 是一個(gè) Android 活動(dòng)( Activity)包,每一個(gè) Android 活動(dòng)都需要繼承Activity 類。包 android.os.Bundle 用于映射字符串的值。onCreate()是一個(gè)重載的函數(shù),在這個(gè)函數(shù)中實(shí)現(xiàn)應(yīng)用程序創(chuàng)建的所執(zhí)行的過(guò)程。其中setContentView()設(shè)置當(dāng)前的視圖(View)。設(shè)置的方法是使用一個(gè)文件,這個(gè)文件因此決定了視圖中包含的內(nèi)容。這里使用的是R.layout.hello_activity,表示從 res/layout/目錄中使用 hello_activity.xml 文件。
res/layout/hello_activity.xml 文件的內(nèi)容如下所示: - <?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="18sp"
android:autoText="true"
android:capitalize="sentences"
android:text="@string/hello_activity_text_text" />
復(fù)制代碼 其中定義了一個(gè)可編輯的文本( EditText),下面的各項(xiàng)其實(shí)是它的各種屬性, android:text 表示這個(gè)文本的內(nèi) 容 ,string/hello_activity_text_text 表 示 找 到 相 應(yīng) 的 文 件 , 也 就 是 res/value/string.xml 文 件 中 的hello_activity_text_text 文本。
res/value/string.xml 的內(nèi)容如下所示: - <?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_activity_text_text">He llo, World!</string>
</resources>
復(fù)制代碼 hello_activity_text_text 文本被 res/layout/hello_activity.xml 文件引用,正是應(yīng)用程序運(yùn)行時(shí)在
屏幕顯示的文本。
Android ADB 工具使用
adb(Android Debug Bridge)是 Android 提供的一個(gè)通用調(diào)試工具,借助這個(gè)工具,我媽可以管理設(shè)備或手機(jī)模
擬器的狀態(tài)。
adb 功能操作:
快速更新設(shè)備或手機(jī)模擬器中的代碼,如應(yīng)用或 Android 系統(tǒng)升級(jí)
在設(shè)備上運(yùn)行 shell 命令
管理設(shè)備或手機(jī)模擬器上預(yù)定端口
在設(shè)備或手機(jī)模擬器上復(fù)制、粘貼文件
adb 常用操作:
安裝應(yīng)用到模擬器
adb install app.apk
Android 沒(méi)有提供一個(gè)卸載應(yīng)用的命令,只能手動(dòng)刪除:
adb shell
cd data/app
rm app.apk
進(jìn)入設(shè)備或模擬器的 Shell
adb shell
通過(guò)以上命令,可以進(jìn)入設(shè)備或模擬器的 shell 環(huán)境中,在這個(gè) Linux Shell 中,你可以執(zhí)行各種 Linux 的命令 ,
另外如果只想執(zhí)行一條 shell 命令,可以采用以下方式:
adb shell [command]
如:
adb shell dmesg
會(huì)打印出內(nèi)核的調(diào)試信息
發(fā)布端口
可以設(shè)置任意的端口號(hào),做為主機(jī)向模擬器或設(shè)備的請(qǐng)求端口。如:
adb forward tcp:5555 tcp:8000
復(fù)制文件
可向一個(gè)設(shè)備或從一個(gè)設(shè)備中復(fù)制文件
復(fù)制一個(gè)文件或目錄到設(shè)備或模擬器上:
adb push
如:
adb push test.txt /tmp/test.txt
從設(shè)備或模擬器上復(fù)制一個(gè)文件或目錄
adb pull
如:
adb pull /android/lib/libwebcore.os
搜索/等待模擬器、設(shè)備實(shí)例
取得當(dāng)前運(yùn)行的模擬器、設(shè)備的實(shí)例列表及每個(gè)實(shí)例的狀態(tài) |
等待正在運(yùn)行的設(shè)備
adb devices
adb wait-for-device
查看 Bug 報(bào)告
adb bugreport
記錄無(wú)線通訊日志
無(wú)線通訊記錄日志非常多,在運(yùn)行時(shí)沒(méi)必要記錄,可以通過(guò)命令設(shè)置記錄
adb shell
logcat -b radio
獲取設(shè)備 ID 和序列號(hào)
adb get-product
adb get-serialno
訪問(wèn)數(shù)據(jù)庫(kù) SQLite3
adb shell
sqlite3
|
上一篇: Android入門教程(四)之------Android工程目錄結(jié)構(gòu)介紹下一篇: Android開(kāi)發(fā)筆記第一篇(開(kāi)放手機(jī)聯(lián)盟--Open Handset Alliance)
|