android32
❶ Android手機64位和32位的軟體存在兼容問題嗎
Android手機64位和32位的軟體存在兼容。
關於Android 64位系統兼容32位應用的實現的簡單分析:
Android 的zygote進程的實現不同於之前的版本,除了有zygote進程之外還有zygote64進程。
在init.zygote32_64.rc中有明確指出:
service zygote /system/bin/app_process32 -Xzygote /system/bin --zygote --start-system-server --socket-name=zygote
...
service zygote_secondary /system/bin/app_process64 -Xzygote /system/bin --zygote --socket-name=zygote_secondary
...
其中app_process32 和app_process64 就是zygote進程的可執行程序,啟動後會改名成zygote。
顧名思義,zygote32即app_process32是一個運行在32位的進程,它所連接的庫也都是32位的。而zygote64就是運行在64位的進程,它所連接的庫都是64位的。
在不考慮有32/64兼容庫的情況下,一個進程如果要正確運行,就必須從可執行程序入口開始到所有使用的庫都保持32/64位的一致性。
因為zygote進程是所有第三方應用程序的父進程,所以可以認為,如果應用程序是32位的,那沒他的父進程也肯定是32位,換句話說,如果需要啟動某個32位的應用,那麼肯定是通過32位的zygote進程fork出來的。
這個一點可以在ActivityManagerService上得到驗證。
ActivityManagerService中startProcessLocked方法實現啟動應用,主要通過Process中的startViaZygote方法
這個方法最終是向相應的zygote進程發出fork的請求 zygoteSendArgsAndGetResult(openZygoteSocketIfNeeded(abi), argsForZygote);
其中openZygoteSocketIfNeeded(abi)會根據abi的類型,選擇不同的zygote的socket監聽的埠
在之前的init文件中可以看到zygote32位監聽的埠就是–socket-name=zygote另外一個就是–socket-name=zygote_secondary
因此可以證實,之前的猜測,即32應用進由32位zygote進程fork出來,64位應用進程由64zygote進程fork出來。那麼之前說的abi參數就是決定應用是32還是64位的關鍵所在,跟蹤這個參數,發現這個參數在ApplicationInfo的primaryCpuAbi中決定
這個值由PackageManagerService在做scanPackageLI的時候決定,具體這個值的得出有一個公式化的過程,主要就是判斷這個apk有沒有使用native的庫
如果使用了,那就看使用了的是32位的還是64位的,另外還要看系統支持的是32位還是64位的。
在64位設備上,如果app的 lib 目錄下 存在armeabi,則以32位兼容方式運行。
如果存在arm64-v8a 則已64位運行。如果沒有任何 so,則 primaryCpuAbi 為空,按照系統的默認配置決定,也就是64位運行。
根據這些因素就可以決定這個apk是應該是32位的還是64位的。以上就是Android L 64位系統兼容32位應用的基本實現過程。另外記錄一點,在源碼環境下如果要PREBUILT第三方的so
如果是32位的需要專門標注 LOCAL_MULTILIB := 32以此告訴編譯系統so位32位,防止編譯到64位下去。
(1)android32擴展閱讀:
64位和32位晶元的區別
其實手機處理器和PC處理器對於位數的概念是相同的,這里我就用PC的處理器來說明了。對CPU有些了解的人大概都知道Pentium 3和Pentium 4,了解更深的,還會知道是i386處理器在20幾年前把處理器從16位帶入32位時代。
處理器經過了近30多年的考驗後,到現在已經躍升到64位,這可不同1GHz到3GHz的頻率提升。如果說頻率的提升是把一條4車道高速公路的時速限制從120公里提升到了360公里的話
那麼從32位到64位的提升就是將這條提升了3倍時速限制的高速公路從4車道拓寬到了8車道,也就是說,這條公路的運力提升了一倍,這可是質的飛躍。
❷ android系統是32位的還是64位的
android5有32位和64位版本,之後的版本都是64位的,也就是說目前的android系統絕大多數是64位的。
❸ androidstudio怎麼把32改成30
通過標尺來改控制項尺寸。
滑鼠點擊androidstudio的文件編輯器,然後點開格式欄中的標尺,直接通過標尺來改控制項尺寸。
❹ android是32-bit系統還是64-bit系統
二者區別如下: 1,32位的系統,意思是系統一次向CPU只能存取32個位元組,64位的操作系統一次能存取64個位元組,這就是他們名字的得來,所以說理論上64位的系統要比32位的系統快; 2,32位操作系統能支持的內存不糊大於4G,如果內存大於4G,那就必須用64位的操作系統,64位的操作系統能支持的最大內存是125G; 3,32位的操作系統只能裝在CPU為32位的電腦上,64位的也是一樣的;如果64位的CPU電腦裝了32位的系統,那就會出現電腦性能過剩,大材小用; 4,面向對象有差別。64位系統一般都是需對電腦配置較高的行業,比如動畫設計,機械設計,視頻設計與剪切等,運行中需要大量的內存,32位系統一般是日常辦公; 5,支持64位系統的軟體還不是很多,一般都是32位的,不過相信64位系統會慢慢的普及開來,因為這是科技發展的必然趨勢
❺ 安卓手機32位和64位主要區別在哪
64位和32位晶元的區別
其實手機處理器和PC處理器對於位數的概念是相同的,這里我就用PC的處理器來說明了。對CPU有些了解的人大概都知道Pentium
3和Pentium
4,了解更深的,還會知道是i386處理器在20幾年前把處理器從16位帶入32位時代。
處理器經過了近30多年的考驗後,到現在已經躍升到64位,這可不同1GHz到3GHz的頻率提升。如果說頻率的提升是把一條4車道高速公路的時速限制從120公里提升到了360公里的話,那麼從32位到64位的提升就是將這條提升了3倍時速限制的高速公路從4車道拓寬到了8車道,也就是說,這條公路的運力提升了一倍,這可是質的飛躍。
❻ 求教.安卓是32位系統還是64位系統
Android屬於32位的Linux系統。是一種以Linux為基礎的開放源代碼操作系統,主要使用於便攜設備。尚未有統一中文名稱,中國大陸地區較多人使用,一般稱安卓。系統一般不區分這個,但是處理器現在就是64位打的比較響,一般認為64位比32位處理更快更強。
❼ 蘋果32g和安卓32區別
沒有區別。蘋果的32個g的內存和安卓的32個g的內存,是沒有區別的,都是32g,都可以下載32個g的東西。
❽ android是32位還是64位
Android Studio其實是分32位和64位的,只不過兩種版本使用的安裝包是同一個。 在官網或者其他地址下載下來的Android Studio只有一個安裝包,這個安裝包不管是在32位系統還是64位系統都可以安裝。安裝完成之後,進到安裝目錄的bin目錄下,就可以看到studio.exe和studio64.exe,這兩個是同時存在的。 studio.exe是在32位系統的電腦上運行的。 studio64.exe是在64位系統的電腦上運行的。 看你自己電腦是多少位的,32位就只能運行32位的studio,64的同樣,所以只需要查一下你電腦多少位的即可
❾ 安卓屬於多少位系統
Android屬於32位的Linux系統。
是一種以Linux為基礎的開放源代碼操作系統,主要使用於便攜設備。尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,最初主要支持手機。2005年由Google收購注資,並組建開放手機聯盟開發改良,逐漸擴展到平板電腦及其他領域上。內核類型: 整塊性核心(Linux)。