色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Android分層中native是哪一層

夏志豪2年前31瀏覽0評論

Android分層中native是哪一層?

分層方式當中,Native層就是本地框架。

這些層大致如此區分:

Java應用程序無需過多解釋,基本可以理解為各個App,由java語言實現。Java框架層就是常說的Framework,這層里東西很多也很復雜,比如說主要的一些系統服務如ActivityManagerService、PackageManagerService等,

編寫Android代碼之所以能夠正常識別和動作,都要依賴這一層的支持。這一層也是由Java語言實現。

Native層這部分常見一些本地服務和一些鏈接庫等。這一層的一個特點就是通過C和C++語言實現。比如我們現在要執行一個復雜運算,如果通過java代碼去實現,那么效率會非常低,此時可以選擇通過C或C++代碼去實現,然后和上層的Java代碼通信(這部分在android中稱為jni機制)。

又比如我們的設備需要運行,那么必然要和底層的硬件驅動交互,也要通過Native層。Linux內核空間這部分顧名思義,就是Kernel部分。

擴展資料:

一個native method方法可以返回任何java類型,包括非基本類型,而且同樣可以進行異常控制。這些方法的實現體可以制一個異常并且將其拋出,這一點與java的方法非常相似。當一個native method接收到一些非基本類型時如Object或一個整型數組時,

這個方法可以訪問這些非基本型的內部,但是這將使這個native方法依賴于你所訪問的java類的實現。有一點要牢牢記住:我們可以在一個native method的本地實現中訪問所有的java特性,但是這要依賴于你所訪問的java特性的實現,而且這樣做遠遠不如在java語言中使用那些特性方便和容易。

native method的存在并不會對其他類調用這些本地方法產生任何影響,實際上調用這些方法的其他類甚至不知道它所調用的是一個本地方法。JVM將控制調用本地方法的所有細節。需要注意當我們將一個本地方法聲明為final的情況。

用java實現的方法體在被編譯時可能會因為內聯而產生效率上的提升。但是一個native final方法是否也能獲得這樣的好處卻是值得懷疑的,但是這只是一個代碼優化方面的問題,對功能實現沒有影響。

如果一個含有本地方法的類被繼承,子類會繼承這個本地方法并且可以用java語言重寫這個方法(這個似乎看起來有些奇怪),同樣的如果一個本地方法被final標識,它被繼承后不能被重寫。

本地方法非常有用,因為它有效地擴充了JVM。事實上,我們所寫的Java代碼已經用到了本地方法,在Sun的Java的并發(多線程)的機制實現中,許多與操作系統的接觸點都用到了本地方法,這使得java程序能夠超越Java運行時的界限。有了本地方法,Java程序可以做任何應用層次的任務。

java 重寫方法快捷鍵,Android分層中native是哪一層