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