網(wǎng)絡(luò)建設(shè)網(wǎng)站有關(guān)知識湖北疫情最新消息
安卓筆記
- Android應(yīng)用項目的開發(fā)過程
- Android的調(diào)試
- Android項目文檔結(jié)構(gòu)
- Intent的顯式/隱式調(diào)用
- Activity的生命周期
- 1個Activity界面涉及到生命周期的情況
- 2個Activity界面涉及到生命周期的情況
- Android布局的理論講解
- Activity
- 界面布局
- ContentProvider是如何實現(xiàn)數(shù)據(jù)共享
- Android整體架構(gòu)及各層作用
Android應(yīng)用項目的開發(fā)過程
開發(fā)Andriod的應(yīng)用程序的一版過程
1.在Android Studio中生成Andriod應(yīng)用項目框架
2.修改或編寫Java源程序
3.修改或編寫xml源程序
4.調(diào)用模擬器運行應(yīng)用程序
Android應(yīng)用程序架構(gòu)分析

邏輯控制層與表現(xiàn)層:在Android應(yīng)用程序中,邏輯控制層與表現(xiàn)層是分開的設(shè)計的。邏輯控制層由Java應(yīng)用程序?qū)崿F(xiàn),表現(xiàn)層由XML文檔描述。
Android的調(diào)試
Android項目文檔結(jié)構(gòu)
Intent的顯式/隱式調(diào)用
Activity的生命周期
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onDestory()
- onRestart()
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-tOZU2RTu-1677903549075)(https://sunmingtypora.oss-cn-qingdao.aliyuncs.com/%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F.png)]
1個Activity界面涉及到生命周期的情況
Activity的方法 | 狀態(tài) |
---|---|
onCreate | 創(chuàng)建Activity時調(diào)用 |
onStrart | 當(dāng)Activity界面變成用戶可見時調(diào)用 |
onResume | 當(dāng)Activity界面獲得焦點時調(diào)用(界面按鈕可點擊,文本框可輸入) |
onPause | 當(dāng)Activity界面失去焦點(按鈕不可) |
onStop | 當(dāng)Activity變?yōu)椴豢梢姇r調(diào)用 |
onDestroy | 當(dāng)Activity被銷毀時調(diào)用 |
onRestart | 當(dāng)Activity再次啟動時調(diào)用 |
代碼測試:
2個Activity界面涉及到生命周期的情況
Activity1 | Activity2 |
---|---|
onCreate onStart onResume 在Activity1中調(diào)用Activity2 onPause | |
onCreate onStart onResume | |
onStop | |
在Activity2中返回 | |
onPause | |
onStart onResume | |
onStop onDestory |
代碼測試:
Android布局的理論講解
布局
- Android界面設(shè)計被稱為布局
- Android中常見的布局包括:
- 相對布局RelativeLayout
- 線性布局LinearLayout
- 表格布局TableLayout
- 網(wǎng)格布局GridLayout
- 幀布局FrameLayout
View
- View在Android中可以理解為視圖。它占據(jù)屏幕上的一塊矩形區(qū)域,負(fù)責(zé)提供組件繪制和事件處理的方法。
- View類是所有的widgets組件的基類。
- View類位于android.view包中,View類的子類一般都位于android.widget包中。
- 比如 android.view.View android.widget.TextView
ViewGroup
- ViewGroup在Android中可以理解為容器。
- ViewGroup類繼承自View類,它是View類的擴(kuò)展,是用來容納其他組件的容器;
- ViewGroup是一個抽象類,在實際應(yīng)用中使用ViewGroup的子類來作為容器的
- ViewGroup.MarginLayoutParams類
- ViewGroup.LayoutParams類





設(shè)計手機(jī)用戶界面應(yīng)解決的問題
- 需要界面設(shè)計與程序邏輯完全分離,利于并行開發(fā),在后期修改界面時,不用修改邏輯代碼
- 根據(jù)不同型號手機(jī)的屏幕解析度、尺寸和縱橫比各不相同,自動調(diào)整界面上部分控件的位置和尺寸,避免因為屏幕信息的變化而出現(xiàn)顯示錯誤
- 能夠合理利用較小的屏幕顯示空間,構(gòu)造出符合人機(jī)交互規(guī)律的用戶界面,避免出現(xiàn)凌亂、擁擠的用戶界面
Android用戶界面框架
Activity
- Activity代表的是顯示給用戶的窗口或屏幕
- Android中定義Activity使用一個view和viewgroup的樹狀節(jié)點
- 要顯示一個用戶界面就需要給一個Activity分配一個View或者布局 ---- setContentView()方法
界面布局
-
界面布局Layout是用戶界面結(jié)構(gòu)的描述,定義了界面中所有的元素、結(jié)構(gòu)和相互關(guān)系
-
聲明Android程序的界面布局有兩種方法
- 使用XML文件描述界面布局
- 在程序運行時動態(tài)添加或修改界面布局
-
用戶既可以獨立使用任何一種聲明界面布局的方式,也可以同時使用兩種方式
-
使用XML文件聲明界面布局的特點
-
將程序的表現(xiàn)層和控制層分離
-
在后期修改用戶界面時,無需更改程序的源代碼
-
用戶還能夠通過可視化工具直接看到所設(shè)計的用戶界面,有利于加快界面設(shè)計的過程,并且為界面設(shè)計與開發(fā)帶來極大的便利性
-


ContentProvider是如何實現(xiàn)數(shù)據(jù)共享
當(dāng)一個應(yīng)用程序要把自己的數(shù)據(jù)暴露給其他程序時,可以通過ContentProvider來實現(xiàn)。
其他應(yīng)用可以通過ContenrResolver來操作ContentProvider暴露的數(shù)據(jù)。
如果應(yīng)用程序A通過ContentProvider暴露自己的數(shù)據(jù)操作接口,那么不管A 是否啟動,其他程序都可以通過該接口來操作A的內(nèi)部數(shù)據(jù),常有增、刪、查、改。
ContentProvider是以Uri的形式對外提供數(shù)據(jù),ContenrResolver是根據(jù)Uri來訪問數(shù)據(jù)。
步驟:
- 定義自己的ContentProvider類,該類需要繼承Android系統(tǒng)提供的ContentProvider基類。
- 在Manifest.xml 文件中注冊ContentProvider,(四大組件的使用都需要在Manifest文件中注冊) 注冊時需要綁定一個URL。
- 例如: android:authorities=“com.myit.providers.MyProvider”
- 說明:authorities就相當(dāng)于為該ContentProvider指定URL。 注冊后,其他應(yīng)用程序就可以通過該Uri來訪問MyProvider所暴露的數(shù)據(jù)了。
- 其他程序使用ContentResolver來操作。
- 調(diào)用Activity的ContentResolver獲取ContentResolver對象
- 調(diào)用ContentResolver的insert(),delete(),update(),query()進(jìn)行增刪改查。
一般來說,ContentProvider是單例模式,也就是說,當(dāng)多個應(yīng)用程序通過ContentResolver來操作ContentProvider提供的數(shù)據(jù)時,ContentResolver調(diào)用的數(shù)據(jù)操作將會委托給同一個ContentResolver。
Android整體架構(gòu)及各層作用
Android整體架構(gòu)圖,從上到下依次是 應(yīng)用程序?qū)?Application)、應(yīng)用程序框架層(Application Framework)、系統(tǒng)運行庫層(Libraries&Android RunTime)、Linux內(nèi)核層(Linxu Kernel)
應(yīng)用程序?qū)?#xff1a;
平常大家所使用的Android應(yīng)用程序都是在這一層上的。在這個層面開發(fā)的應(yīng)用程序都是Java語言編寫,調(diào)用 Application Framwork 提供的API來完成。
應(yīng)用程序框架層:
這層為開發(fā)人員提供了可以完全訪問核心應(yīng)用程序所使用的API框架
系統(tǒng)運行庫層——Libraries
程序庫中是一些由C/C++編寫的庫組成,這些庫能夠被Android系統(tǒng)中的不同組件使用,他們通過應(yīng)用程序框架為開發(fā)者提供服務(wù)
系統(tǒng)運行庫層——Android Runtime
Android Runtime 分為 Core Libraries 和 Dalvik虛擬機(jī)。Core Libraries 提供了Java語言核心庫的大部分功能,這里主要通過JNI(Java Nation Interface)的方式向應(yīng)用程序框架層提供調(diào)用底層程序庫(Libraries)的接口
Dalvik虛擬機(jī)是為了能夠同時高效地運行多個VMs而實現(xiàn)的。每個Android應(yīng)用程序都在它自己的進(jìn)程中運行,都擁有一個獨立的Dalvik虛擬機(jī)實例
Linux內(nèi)核層:
Android依賴于Linux2.6版內(nèi)核提供的核心系統(tǒng)服務(wù)。內(nèi)核作為一個抽象層,位于軟件棧層和硬件層之間,Android對內(nèi)核進(jìn)行了增強(qiáng)