Android編程權(quán)威指南(第三版)第一章學(xué)習(xí)筆記

無(wú)關(guān)技術(shù)

這段時(shí)間看了看Android權(quán)威指南這本書,想著把課后挑戰(zhàn)都做一遍.當(dāng)做練習(xí)的.然后在看書的過(guò)程中,復(fù)習(xí)了一遍基礎(chǔ)知識(shí),還是做一下記錄,就當(dāng)做筆記去復(fù)習(xí)吧.
所以,就寫一寫學(xué)習(xí)筆記吧.

第一章

知識(shí)概要

本章主要講了如何去新建一個(gè)android項(xiàng)目,以及Activity的命名規(guī)范,布局界面,視圖層級(jí),常用控件的基本屬性,字符串資源的創(chuàng)建,控件的初始化,以及監(jiān)聽(tīng)器的設(shè)置,模擬器的應(yīng)用等.

深入學(xué)習(xí)

android編譯過(guò)程

這個(gè)講得其實(shí)是將項(xiàng)目的源文件編譯打包成apk的過(guò)程.本書只是簡(jiǎn)單的介紹了一下,然后我就查了一些資料,放在這里,以便復(fù)習(xí).

過(guò)程流程圖:

image

流程圖中用到的工具有:

名稱 功能介紹 在操作系統(tǒng)中的路徑
aapt Android資源打包工具 ${ANDROID_SDK_HOME}/platform-tools/appt
aidl Android接口描述語(yǔ)言轉(zhuǎn)化為.java文件的工具 ${ANDROID_SDK_HOME}/platform-tools/aidl
javac Java Compiler ${JDK_HOME}/javac或/usr/bin/javac
dex 轉(zhuǎn)化.class文件為Davik VM能識(shí)別的.dex文件 ${ANDROID_SDK_HOME}/platform-tools/dx
apkbuilder 生成apk包 ${ANDROID_SDK_HOME}/tools/opkbuilder
jarsigner .jar文件的簽名工具 ${JDK_HOME}/jarsigner或/usr/bin/jarsigner
zipalign 字節(jié)碼對(duì)齊工具 ${ANDROID_SDK_HOME}/tools/zipalign

總結(jié)來(lái)說(shuō)就是:
首先將.java文件編譯成.class文件

(這個(gè)java文件包括我們寫的java源代碼,還有資源文件被appt編譯成的R.java文件 和aidl工具將aidl文件生成的.java文件)

然后把.class文件轉(zhuǎn)成.dex文件

(因?yàn)閍ndroid虛擬機(jī)只能執(zhí)行dex文件)

再然后通過(guò)apkbuild工具將打包后的資源文件,.dex文件,lib文件(.so等)生成未簽名的.apk文件

然后對(duì)未簽名的.apk文件進(jìn)行簽名

最后對(duì)簽名的apk文件進(jìn)行對(duì)齊處理

了解這些可以對(duì)開發(fā)應(yīng)用流程有一個(gè)整體的認(rèn)知,知道apk怎么來(lái)的.

挑戰(zhàn)練習(xí)

定制Toast消息

這個(gè)練習(xí)比較簡(jiǎn)單,主要是想讓我們盡早養(yǎng)成查閱android官方文檔的習(xí)慣.

Toast的類官網(wǎng)

https://developer.android.google.cn/reference/android/widget/Toast

按照提示,找到setGravity方法
`

setGravity(int gravity, int xOffset, int yOffset)
Set the location at which the notification should appear on the screen.

`
很多情況都是英文解釋的,建議養(yǎng)成閱讀英文的習(xí)慣,有時(shí)候翻譯成中文讀起來(lái)很別扭.

方法的解釋是設(shè)置消息在屏幕中的位置.

后面的兩個(gè)int參數(shù),表示的是偏移量.

所以要使Toast在上面顯示,可以
`

 Toast toast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.TOP, 0, 10);
    toast.show();

`

默認(rèn)吐司是在底部顯示的,Gravity.Top點(diǎn)擊進(jìn)去,發(fā)現(xiàn)還有一些Left,right,常量.

所以嘗試著改一下,發(fā)現(xiàn),屏幕可以居中左邊(右邊)顯示Toast.

封裝一個(gè)工具類如下:
`

 public static void showTopShortMessage(Context context, @StringRes int resId) {
    Toast toast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.TOP, 0, 10);
    toast.show();
}


public static void showLeftShortMessage(Context context, @StringRes int resId) {
    Toast toast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.LEFT, 0, 0);
    toast.show();
}

public static void showRightShortMessage(Context context, @StringRes int resId) {
    Toast toast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.RIGHT, 0, 0);
    toast.show();
}

`

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容