日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android开发基本知识,Android应用开发基本知识点汇总

發(fā)布時間:2025/3/11 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android开发基本知识,Android应用开发基本知识点汇总 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Activity

一生命周期

4種狀態(tài)running/paused/stopped/killed

生命周期

Activity發(fā)動onCreate->onStart->onResume

點Home回來主界面onPause->onStop

再次回到原ActivityonRestart->onStart->onResume

退出ActivityonPause->onStop->onDestroy

進程優(yōu)先級前臺/可見/服務/后臺/空

二使命棧

三發(fā)動形式

standard

singleTop棧頂復用

singleTask棧內(nèi)復用

singeInstance

四scheme跳轉(zhuǎn)協(xié)議

服務器能夠定制化告知App跳轉(zhuǎn)哪個頁面,能夠經(jīng)過通知欄音訊定制化跳轉(zhuǎn)頁面,能夠經(jīng)過H5頁面跳轉(zhuǎn)頁面

Fragment

一第五大組件

為什么是第五大組件Fragment相對Activity更節(jié)約內(nèi)存,切換更舒適

Fragment加載到Activity的兩種方式

靜態(tài)加載xml

動態(tài)加載fragmentTransaction.add(id,fragment,“name”);.commit;

FragmentPagerAdapter與FragmentStatePagerAdapter

FragmentStatePagerAdapter在切換時收回內(nèi)存,合適頁面較多的狀況

FragmentPagerAdapter并沒有收回內(nèi)存,只是detach了Activity

二生命周期

onAttach->onCreate->onCreateView->onViewCreated->onActivityCreated->onStart->onResume

->onPause->onStop->onDestroyView->onDestroy->onDetach

先創(chuàng)立Activity后創(chuàng)立Fragment,先毀掉Fragment后毀掉Activity

三Fragment之間的通訊

Fragment調(diào)用ActivitygetActivity

Activity調(diào)用Fragment接口回調(diào)

Fragment調(diào)用Fragment辦法findFragmentById

四FragmentManager

replace

add

remove

Service

一運用場景,與Thread區(qū)別

Service是什么后臺長期運行,沒有用戶界面,運行在主線程,不能有耗時操作

Service與Thread區(qū)別Activity難以與Thread交互,尤其當Activity毀掉以后

二敞開Service的兩種方式

StartService

onCreate->onStartCommand->onBind->onDestroy

onStartCommandreturnSTART_STICKY;

startService(intent);stopService(intent);

BindService

Broadcast

一播送

定義

場景可在同一個App多個進程間音訊傳遞,可在不同App間音訊傳遞

品種Normal,System有序播送,Local本地播送

二完成方式

靜態(tài)注冊注冊完一向運行

動態(tài)注冊跟從Activity生命周期

三完成機制

四本地播送LocalBroadcastManager

因為之前的播送都是大局的,一切運用程序都能夠接納到,這樣就很簡單會引起安全性的問題,比如說咱們發(fā)送一些帶著關鍵性數(shù)據(jù)的播送有或許被其他的運用程序截獲,或許其他的程序不停地向咱們的播送接納器里發(fā)送各種廢物播送。

為了能夠簡單地解決播送的安全性問題,Android引入了一套本地播送機制,運用這個機制宣布的播送只能夠在運用程序的內(nèi)部進行傳遞,而且播送接納器也只能接納來自運用程序宣布的播送,這樣一切的安全性問題就都不存在了。

異步音訊處理

Handler

子線程發(fā)送音訊,讓主線程更新UI

handler運用辦法post(runnable)與sendMessage(message)

handler內(nèi)存泄漏解決辦法:1.handler改為靜態(tài)內(nèi)部類2.handler內(nèi)部持有Activity外部弱引用

3.mHandler.removeCallback()

HandlerThread

多次創(chuàng)立毀掉線程很耗費系統(tǒng)資源

本質(zhì)上是線程,繼承自Thread,一起自己內(nèi)部擁有Looper目標,能夠進行Looper循環(huán)

串行隊列,不能一起多使命處理,需求等候

handlerThread=handler+thread+looper

AsyncTask

本質(zhì)上封裝了線程池和Handler

傳入三個參數(shù)xxxAsyncTaskextendsAsyncTask運用參數(shù),進度參數(shù),成果參數(shù)

onPreExecute在UI線程里履行

doInBackground回來參數(shù)傳給onPostExecute,中心publishProgress(i)中的參數(shù)傳給onProgressUpdate

onProgressUpdate在UI線程里履行

onPostExecute在UI線程里履行

xxxAsyncTask.cancel()

并行or串行?為了線程池安穩(wěn),系統(tǒng)默認串行,一般建議串行,用xxxAsyncTask.executeOnExecutor履行并行

IntentService

IntentService是串行的

onHandleIntent履行耗時操作

IntentService內(nèi)部封裝了HandlerThread框架,利用HandlerThread進行異步音訊傳遞

WebView

API16之前,沒有限制WebView.addJavascriptInterface(),攻擊者利用反射可履行任意Java目標的辦法。

onDestroy毀掉WebView時,先要從父視圖里removeWebView,再調(diào)用WebView.removeAllViews()和WebView.destroy(),防止內(nèi)存泄漏,WebView中的Context運用弱引用。

jsbridge經(jīng)過JS構(gòu)建起的橋

WebView硬件加速導致頁面渲染問題

Binder

Linux的進程間通訊有Pipe,Socket,共享內(nèi)存,信號量,信號,報文。

但是出于功能和安全考慮,Android引入了Binder機制。

Binder驅(qū)動位于內(nèi)核空間,兩個位于用戶空間的進程間的通訊,有必要運用到Linux系統(tǒng)調(diào)用。

Binder目標是一個跨進程通訊的目標,由Binder驅(qū)動完成。

進程經(jīng)過Binder驅(qū)動向ServiceManager注冊,ServiceManager維護一張表。

進程A從ServiceManager里查詢進程B,ServiceManager回來一個署理目標,

署理目標經(jīng)過Binder驅(qū)動完成,將成果回來給ServiceManager。

Android構(gòu)建

將資源文件經(jīng)過aapt編譯生成R.java,將aidl文件經(jīng)過aidl編譯生成Java接口

將App源碼+R.java+aidl的Java接口,經(jīng)過Java編譯器生成.class字節(jié)碼文件

將.class經(jīng)過dex生成.dex文件(虛擬機Dalvik可履行文件)

將.dex+其它未編譯文件經(jīng)過apkbuilder生成apk

將apk經(jīng)過簽名東西jarsigner進行簽名

將apk經(jīng)過zipalign進行對齊操作,節(jié)約內(nèi)存開支,削減apk巨細

OKHttp

運用辦法

創(chuàng)立一個OKHttpClient目標

創(chuàng)立一個Request目標(經(jīng)過內(nèi)部類Builder調(diào)用生成)

創(chuàng)立一個Call目標,調(diào)用execute(同步懇求)/enqueue(異步懇求)

WebSocket心跳原理

心跳包中或許會帶著數(shù)據(jù)

當收到Ping幀的時候需求立即回來一個Pong幀

在連接建立之后,隨時都能夠發(fā)送Ping幀

心跳是用來測驗鏈接是否存在和對方是否在線

在呼應Ping幀的的Pong幀中,有必要攜和被呼應的Ping幀中相同的數(shù)據(jù)

總結(jié)

以上是生活随笔為你收集整理的android开发基本知识,Android应用开发基本知识点汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。