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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题

發(fā)布時(shí)間:2023/12/20 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、前言



Android apk加載機(jī)制

這就是我最近在解決的一個(gè)問(wèn)題,32位的apk可以用32位的庫(kù),那64位的apk可以用64位的庫(kù),如果我想64位的apk同時(shí)使用32和64位的庫(kù)呢?
android加載so文件的機(jī)制
apk在安裝的過(guò)程中,系統(tǒng)就會(huì)對(duì)apk進(jìn)行解析根據(jù)里面so文件類型,確定這個(gè)apk安裝是在32 還是 64位的虛擬機(jī)上,如果是32位虛擬機(jī)那么就不能使用64位so,如果是64位虛擬機(jī)也不能使用32位so。而64位設(shè)備可以提供32和64位兩種虛擬機(jī),根據(jù)apk選擇開(kāi)啟哪一種,因此說(shuō)64位設(shè)備兼容32的so庫(kù)。

具體來(lái)說(shuō)就是apk在安裝的時(shí)候,apk解包的時(shí)候,就已經(jīng)確定要加載多少位的庫(kù)了,如果apk里面放有兩種庫(kù),實(shí)際用的時(shí)候,也是只會(huì)加載一種庫(kù)。

2、我遇到的問(wèn)題

我們遇到的問(wèn)題是,我們自己編寫的應(yīng)用是系統(tǒng)應(yīng)用,使用了系統(tǒng)的systemuid,就是和setting的uid是一樣的,而且我們是32位apk,setting是64位apk,這樣開(kāi)機(jī)的時(shí)候經(jīng)常遇到setting到不到lib庫(kù)。對(duì)應(yīng)的日志如下。

03-12 10:48:50.245 1381 1381 D AndroidRuntime: Shutting down VM
03-12 10:48:50.247 1381 1381 E AndroidRuntime: FATAL EXCEPTION: main
03-12 10:48:50.247 1381 1381 E AndroidRuntime: Process: com.android.settings, PID: 1381
03-12 10:48:50.247 1381 1381 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate application com.android.settings.SettingsApplication: java.lang.ClassNotFoundException: Didn’t find class “com.android.settings.SettingsApplication” on path: DexPathList[[zip file “/system/priv-app/Settings/Settings.apk”],nativeLibraryDirectories=[/system/priv-app/Settings/lib/arm64, /system/priv-app/Settings/Settings.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.LoadedApk.makeApplication(LoadedApk.java:802)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5379)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.ActivityThread.-wrap2(ActivityThread.java)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.ActivityThreadH.handleMessage(ActivityThread.java:1546)03?1210:48:50.24713811381EAndroidRuntime:atandroid.os.Handler.dispatchMessage(Handler.java:102)03?1210:48:50.24713811381EAndroidRuntime:atandroid.os.Looper.loop(Looper.java:154)03?1210:48:50.24713811381EAndroidRuntime:atandroid.app.ActivityThread.main(ActivityThread.java:6121)03?1210:48:50.24713811381EAndroidRuntime:atjava.lang.reflect.Method.invoke(NativeMethod)03?1210:48:50.24713811381EAndroidRuntime:atcom.android.internal.os.ZygoteInit H.handleMessage(ActivityThread.java:1546)03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6121)03-12 10:48:50.247 1381 1381 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)03-12 10:48:50.247 1381 1381 E AndroidRuntime: at com.android.internal.os.ZygoteInitH.handleMessage(ActivityThread.java:1546)03?1210:48:50.24713811381EAndroidRuntime:atandroid.os.Handler.dispatchMessage(Handler.java:102)03?1210:48:50.24713811381EAndroidRuntime:atandroid.os.Looper.loop(Looper.java:154)03?1210:48:50.24713811381EAndroidRuntime:atandroid.app.ActivityThread.main(ActivityThread.java:6121)03?1210:48:50.24713811381EAndroidRuntime:atjava.lang.reflect.Method.invoke(NativeMethod)03?1210:48:50.24713811381EAndroidRuntime:atcom.android.internal.os.ZygoteInitMethodAndArgsCaller.run(ZygoteInit.java:912)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.android.settings.SettingsApplication” on path: DexPathList[[zip file “/system/priv-app/Settings/Settings.apk”],nativeLibraryDirectories=[/system/priv-app/Settings/lib/arm64, /system/priv-app/Settings/Settings.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.Instrumentation.newApplication(Instrumentation.java:992)
03-12 10:48:50.247 1381 1381 E AndroidRuntime: at android.app.LoadedApk.makeApplication(LoadedApk.java:796)

因?yàn)槲覀冏约旱膽?yīng)用是32位,又使用了系統(tǒng)的uid,這樣引導(dǎo)系統(tǒng)也去找對(duì)應(yīng)的32位lib。
當(dāng)然了,很不幸,setting是沒(méi)有32位Lib的,所以,就出現(xiàn)了問(wèn)題,設(shè)置掛逼,出現(xiàn)問(wèn)題的時(shí)候,把我們的應(yīng)用刪除掉就可以了。

03-12 10:48:34.351 634 634 I SystemServiceManager: Starting com.android.server.pm.Installer
03-12 10:48:34.359 634 634 I SystemServiceManager: Starting com.android.server.am.ActivityManagerServiceKaTeX parse error: Expected '}', got 'EOF' at end of input: …id.view.DisplayHdrCapabilities@a69d6308, density 280, 213.0 x 213.0 dpi, appVsyncOff 1000000, presDeadline 16129032, touch INTERNAL, rotation 0, type BUILT_IN, state UNKNOWN, FLAG_DEFAULT_DISPLAY, FLAG_ROTATES_WITH_CONTENT, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
03-12 10:48:34.359 634 634 I SystemServiceManager: Starting com.android.server.am.ActivityManagerServiceKaTeX parse error: Expected '}', got 'EOF' at end of input: …id.view.DisplayHdrCapabilities@a69d6308, density 280, 213.0 x 213.0 dpi, appVsyncOff 1000000, presDeadline 16129032, touch INTERNAL, rotation 0, type BUILT_IN, state UNKNOWN, FLAG_DEFAULT_DISPLAY, FLAG_ROTATES_WITH_CONTENT, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
03-12 10:48:34.772 634 655 I DisplayManagerService: Display device changed state: “Built-in Screen”, ON
03-12 10:48:34.773 634 634 I SystemServiceManager: Starting phase 100
03-12 10:48:34.774 634 634 I SystemServer: StartPackageManagerService
03-12 10:48:34.926 634 634 I PackageManager: No settings file; creating initial state
03-12 10:48:34.953 634 634 W PackageManager: Library not found: /system/framework/org.apache.http.legacy.jar
03-12 10:48:34.976 634 634 W PackageManager: Library not found: /system/framework/org.apache.http.legacy.jar
03-12 10:48:34.995 634 634 W PackageManager: Failed to parse /system/framework/arm: Missing base APK in /system/framework/arm
03-12 10:48:34.996 634 634 W PackageManager: Failed to parse /system/framework/arm64: Missing base APK in /system/framework/arm64
03-12 10:48:35.044 634 634 I PackageManager: /system/framework/framework-res.apk changed; collecting certs
03-12 10:48:35.237 634 634 W PackageManager: Failed to parse /system/framework/oat: Missing base APK in /system/framework/oat
03-12 10:48:35.249 634 634 I PackageManager: /system/priv-app/BackupRestoreConfirmation changed; collecting certs
03-12 10:48:35.266 634 634 I PackageManager: /system/priv-app/DefaultContainerService changed; collecting certs
03-12 10:48:35.288 634 634 I PackageManager: /system/priv-app/DeviceTest changed; collecting certs
03-12 10:48:35.329 634 634 I PackageManager: /system/priv-app/ExtServices changed; collecting certs
03-12 10:48:35.344 634 634 I PackageManager: /system/priv-app/ExternalStorageProvider changed; collecting certs
03-12 10:48:35.357 634 634 I PackageManager: /system/priv-app/FusedLocation changed; collecting certs
03-12 10:48:35.371 634 634 I PackageManager: /system/priv-app/InputDevices changed; collecting certs
03-12 10:48:35.384 634 634 I PackageManager: /system/priv-app/KeyChain changed; collecting certs
03-12 10:48:35.401 634 634 I PackageManager: /system/priv-app/ManagedProvisioning changed; collecting certs
03-12 10:48:35.419 634 634 I PackageManager: /system/priv-app/MediaProvider changed; collecting certs
03-12 10:48:35.431 634 634 I PackageManager: /system/priv-app/MtpDocumentsProvider changed; collecting certs
03-12 10:48:35.442 634 634 I PackageManager: /system/priv-app/OneTimeInitializer changed; collecting certs
03-12 10:48:35.476 634 634 I PackageManager: /system/priv-app/PackageInstaller changed; collecting certs
03-12 10:48:35.509 634 634 I PackageManager: /system/priv-app/Provision changed; collecting certs
03-12 10:48:35.521 634 634 I PackageManager: /system/priv-app/ProxyHandler changed; collecting certs
03-12 10:48:35.535 634 634 I PackageManager: /system/priv-app/RetailDemo changed; collecting certs
03-12 10:48:35.661 634 634 I PackageManager: /system/priv-app/Settings changed; collecting certs
03-12 10:48:35.817 634 634 I PackageManager: /system/priv-app/SettingsProvider changed; collecting certs
03-12 10:48:35.831 634 634 I PackageManager: /system/priv-app/SharedStorageBackup changed; collecting certs
03-12 10:48:35.848 634 634 I PackageManager: /system/priv-app/Shell changed; collecting certs
03-12 10:48:35.863 634 634 I PackageManager: /system/priv-app/StatementService changed; collecting certs
03-12 10:48:35.889 634 634 I PackageManager: /system/priv-app/StorageManager changed; collecting certs
03-12 10:48:35.889 634 634 I PackageManager: /system/priv-app/StorageManager changed; collecting certs
03-12 10:48:35.931 634 634 I PackageManager: /system/priv-app/StressTest changed; collecting certs
03-12 10:48:36.049 634 634 I PackageManager: /system/priv-app/SystemUI changed; collecting certs
03-12 10:48:36.154 634 634 I PackageManager: /system/app/Bluetooth changed; collecting certs
03-12 10:48:36.173 634 634 I PackageManager: /system/app/BluetoothMidiService changed; collecting certs
03-12 10:48:36.201 634 634 I PackageManager: /system/app/Camera2 changed; collecting certs
03-12 10:48:36.242 634 634 I PackageManager: /system/app/CertInstaller changed; collecting certs
03-12 10:48:36.261 634 634 I PackageManager: /system/app/DownloadProviderUi changed; collecting certs
03-12 10:48:36.275 634 634 I PackageManager: /system/app/ExtShared changed; collecting certs
03-12 10:48:36.295 634 634 I PackageManager: /system/app/FactoryTest changed; collecting certs
03-12 10:48:36.345 634 634 I PackageManager: /system/app/jjjjj110 changed; collecting certs
03-12 10:48:37.598 634 634 W PackageManager: Permission android.permission.FLASHLIGHT from package com.xxxxxx.jjjjj.titket.oceanFlower in an unknown group android.permission-group.HARDWARE_CONTROLS
03-12 10:48:37.689 634 634 I PackageManager: /system/app/LatinIME changed; collecting certs
03-12 10:48:37.868 634 634 I PackageManager: /system/app/Launcher3 changed; collecting certs
03-12 10:48:37.879 634 634 W PackageManager: Permission com.android.launcher3.permission.READ_SETTINGS from package com.android.launcher3 in an unknown group android.permission-group.SYSTEM_TOOLS
03-12 10:48:37.879 634 634 W PackageManager: Permission com.android.launcher3.permission.WRITE_SETTINGS from package com.android.launcher3 in an unknown group android.permission-group.SYSTEM_TOOLS
03-12 10:48:37.879 634 634 W PackageManager: Permission com.android.launcher.permission.INSTALL_SHORTCUT from package com.android.launcher3 in an unknown group android.permission-group.SYSTEM_TOOLS
03-12 10:48:37.895 634 634 I PackageManager: /system/app/LiveWallpapersPicker changed; collecting certs
03-12 10:48:37.915 634 634 I PackageManager: /system/app/MediaFloat changed; collecting certs
03-12 10:48:37.938 634 634 I PackageManager: /system/app/NfcNci changed; collecting certs
03-12 10:48:37.964 634 634 I PackageManager: /system/app/PrintRecommendationService changed; collecting certs
03-12 10:48:37.983 634 634 I PackageManager: /system/app/PrintSpooler changed; collecting certs
03-12 10:48:38.000 634 634 I PackageManager: /system/app/RFTestTool changed; collecting certs
03-12 10:48:38.015 634 634 I PackageManager: /system/app/RKUpdateService changed; collecting certs
03-12 10:48:38.044 634 634 I PackageManager: /system/app/RkExplorer changed; collecting certs
03-12 10:48:38.064 634 634 I PackageManager: /system/app/SecretCode changed; collecting certs
03-12 10:48:38.080 634 634 I PackageManager: /system/app/UserDictionaryProvider changed; collecting certs
03-12 10:48:38.095 634 634 I PackageManager: /system/app/WallpaperPicker changed; collecting certs
03-12 10:48:38.118 634 634 I PackageManager: /system/app/webview changed; collecting certs
03-12 10:48:39.617 634 634 W PackageManager: Protected action; cap priority to 0; package: com.android.packageinstaller activity: com.android.packageinstaller.PackageInstallerActivity origPrio: 1
03-12 10:48:39.617 634 634 I PackageManager: Adjusting ABI for com.android.providers.media to arm64-v8a (requirer=com.android.mtp, scannedPackage=null)
03-12 10:48:39.619 634 634 I PackageManager: Adjusting ABI for com.android.providers.downloads.ui to arm64-v8a (requirer=com.android.mtp, scannedPackage=null)
03-12 10:48:39.620 634 634 W PackageManager: Instruction set mismatch, PackageSetting{1e08467 com.xxxxxx.jjjjj.titket.oceanFlower/1000} requires arm whereas PackageSetting{51ca86c android.rockchip.update.service/1000} requires arm64
03-12 10:48:39.620 634 634 W PackageManager: Instruction set mismatch, PackageSetting{1e08467 com.xxxxxx.jjjjj.titket.oceanFlower/1000} requires arm whereas PackageSetting{992cb54 android/1000} requires arm64
03-12 10:48:39.620 634 634 I PackageManager: Adjusting ABI for com.android.location.fused to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.621 634 634 I PackageManager: Adjusting ABI for com.android.rk to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.622 634 634 I PackageManager: Adjusting ABI for com.DeviceTest to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.623 634 634 I PackageManager: Adjusting ABI for com.cghs.stresstest to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.623 634 634 I PackageManager: Adjusting ABI for com.android.keychain to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.624 634 634 I PackageManager: Adjusting ABI for com.android.rk.mediafloat to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.625 634 634 I PackageManager: Adjusting ABI for com.xingluo.engineermode.test to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.626 634 634 I PackageManager: Adjusting ABI for com.android.inputdevices to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.626 634 634 I PackageManager: Adjusting ABI for com.android.providers.settings to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.628 634 634 I PackageManager: Adjusting ABI for com.android.settings to armeabi-v7a (requirer=com.xxxxxx.jjjjj.titket.oceanFlower, scannedPackage=null)
03-12 10:48:39.632 634 634 I PackageManager: Time to scan packages: 4.701 seconds
03-12 10:48:39.634 634 634 W PackageManager: Unknown permission android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS in package com.android.providers.downloads.ui
03-12 10:48:39.634 634 634 W PackageManager: Unknown permission android.permission.ACCESS_ALL_DOWNLOADS in package com.android.providers.downloads.ui
03-12 10:48:39.634 634 634 W PackageManager: Unknown permission android.permission.ACCESS_ALL_DOWNLOADS in package com.android.certinstaller
03-12 10:48:39.635 634 634 W PackageManager: Unknown permission android.permission.NFC_UNLOCK in package com.android.nfc
03-12 10:48:39.636 634 634 W PackageManager: Unknown permission com.android.launcher.permission.READ_SETTINGS in package com.android.launcher3
03-12 10:48:39.636 634 634 W PackageManager: Unknown permission com.android.launcher.permission.WRITE_SETTINGS in package com.android.launcher3
03-12 10:48:39.636 634 634 W PackageManager: Not granting permission android.permission.BIND_APPWIDGET to package com.android.launcher3 (protectionLevel=18 flags=0x3c4bbe45)
03-12 10:48:39.637 634 634 W PackageManager: Unknown permission android.permission.RECORD_VIDEO in package com.xxxxxx.jjjjj.titket.oceanFlower
03-12 10:48:39.637 634 634 W PackageManager: Unknown permission com.android.launcher.permission.READ_SETTINGS in package com.android.onetimeinitializer
03-12 10:48:39.637 634 634 W PackageManager: Unknown permission com.android.launcher.permission.WRITE_SETTINGS in package com.android.onetimeinitializer
03-12 10:48:39.637 634 634 W PackageManager: Unknown permission com.google.android.permission.INSTALL_WEARABLE_PACKAGES in package com.android.packageinstaller
03-12 10:48:39.637 634 634 W PackageManager: Unknown permission android.permission.DOWNLOAD_WITHOUT_NOTIFICATION in package com.android.inputmethod.latin
03-12 10:48:39.638 634 634 W PackageManager: Unknown permission android.permission.SENSOR_INFO in package com.xingluo.engineermode.test
03-12 10:48:39.638 634 634 W PackageManager: Unknown permission android.permission.SENSOR_ENABLE in package com.xingluo.engineermode.test
03-12 10:48:39.639 634 634 W PackageManager: Unknown permission com.android.launcher.permission.READ_SETTINGS in package com.xingluo.engineermode.test
03-12 10:48:39.639 634 634 W PackageManager: Unknown permission com.google.android.googleapps.permission.GOOGLE_AUTH in package com.android.settings
03-12 10:48:39.639 634 634 W PackageManager: Unknown permission android.permission.ACCESS_DOWNLOAD_MANAGER in package com.android.settings
03-12 10:48:39.639 634 634 W PackageManager: Unknown permission android.permission.ACCESS_DOWNLOAD_MANAGER in package com.android.settings
03-12 10:48:39.640 634 634 W PackageManager: Unknown permission com.android.launcher.permission.READ_SETTINGS in package com.android.settings
03-12 10:48:39.640 634 634 W PackageManager: Unknown permission com.android.launcher.permission.WRITE_SETTINGS in package com.android.settings
03-12 10:48:39.644 634 634 W PackageManager: Unknown permission com.android.launcher.permission.READ_SETTINGS in package com.DeviceTest
03-12 10:48:39.645 634 634 W PackageManager: Unknown permission com.google.android.gallery3d.permission.GALLERY_PROVIDER in package com.android.bluetooth
03-12 10:48:39.645 634 634 W PackageManager: Unknown permission com.android.gallery3d.permission.GALLERY_PROVIDER in package com.android.bluetooth
03-12 10:48:39.646 634 634 V PackageManager: reconcileAppsData for null u0 0x3
03-12 10:48:39.901 634 634 V PackageManager: reconcileAppsData finished 47 packages
03-12 10:48:40.599 634 634 D PackageManager: Ephemeral resolver NOT found; no matching intent filters
03-12 10:48:40.600 634 634 I PackageManager: Ephemeral deactivated; missing resolver and installer
03-12 10:48:40.652 634 634 I SystemServer: StartUserManagerService
03-12 10:48:40.652 634 634 I SystemServiceManager: Starting com.android.server.pm.UserManagerServiceLifeCycle03?1210:48:40.672634634ISystemServiceManager:Startingcom.android.server.BatteryService03?1210:48:40.688634634ISystemServiceManager:Startingcom.android.server.usage.UsageStatsService03?1210:48:40.710634634ISystemServiceManager:Startingcom.android.server.webkit.WebViewUpdateService03?1210:48:40.718634634ISystemServer:Readingconfiguration…03?1210:48:40.718634634ISystemServer:StartSchedulingPolicyService03?1210:48:40.720634634ISystemServer:StartEntropyMixer03?1210:48:40.721634634WEntropyMixer:Noexistingentropyfile??firstboot?03?1210:48:40.722634634IEntropyMixer:Writingentropy…03?1210:48:40.727634634ISystemServer:CameraService03?1210:48:40.730634634ISystemServiceManager:Startingcom.android.server.camera.CameraService03?1210:48:40.734634685IServiceThread:EnabledStrictModeloggingforCameraServiceproxylooper.03?1210:48:40.735634634ISystemServer:StartAccountManagerService03?

看上面的日志,日志是開(kāi)機(jī)的時(shí)候打印,過(guò)濾掉PackageManager,就可以看到系統(tǒng)開(kāi)機(jī)安裝apk的順序,對(duì)我們調(diào)試來(lái)說(shuō)也是非常有幫助。
里面有兩條日志,如下:

03-12?10:48:39.620?634?634?W?PackageManager:?Instruction?set?mismatch,?PackageSetting{1e08467?com.xxxxxx.jjjjj.titket.oceanFlower/1000}?requires?arm?whereas?PackageSetting{51ca86c?android.rockchip.update.service/1000}?requires?arm64
03-12?10:48:39.620?634?634?W?PackageManager:?Instruction?set?mismatch,?PackageSetting{1e08467?com.xxxxxx.jjjjj.titket.oceanFlower/1000}?requires?arm?whereas?PackageSetting{992cb54?android/1000}?requires?arm64

大概意思就是說(shuō),一個(gè)apk需要arm,就是32位的庫(kù),一個(gè)apk需要arm64,就是64位的庫(kù)。好吧,這樣已經(jīng)對(duì)我們的問(wèn)題非常明顯的。

3、如何查看apk是32位還是64位?

使用Zygote來(lái)判斷應(yīng)用是32位還是64位,Android生出Zygote,Zygote生出SystemServer,SystemServer又啟動(dòng)PackageManagerService和ActivityManagerService。由此可以知道Zygote在Android系統(tǒng)中的重要性。


如上圖,在64位的android機(jī)器中,有兩個(gè)Zygote。

從Zygote64出生出來(lái)的都是64位的Apk,從Zygote出生來(lái)的都是32位的Apk。


4、如何修改?

  • 通過(guò)上面的日志,可以想出第一種修改,就是把我們的apk不使用系統(tǒng)的uid。

  • 可是我們又需要系統(tǒng)的uid權(quán)限,這個(gè)方法被無(wú)恥的否決掉。

  • 還有一種方法,就是把我們的apk修改為64位的,那他就自己去找64位的庫(kù)就好了。

  • 這個(gè)方法也很不幸,我們有一個(gè)庫(kù)是第三方的,就只有32位的庫(kù)。
    最后一種方法是從網(wǎng)上找到的,需要修改兩個(gè)位置。

  • 1.在apk對(duì)應(yīng)的android.mk中
    LOCAL_DEX_PREOPT := nostripping

  • 2./device/rockchip/rk3399/BoardConfig.mk,
    DEX_PREOPT_DEFAULT := nostripping

5、隱患

我們上面的修改保證了可以在apk的uid相同的情況下使用不同的Lib位庫(kù),但是32位的apk理論上運(yùn)行的速度肯定沒(méi)有64位的速度快,CPU跟外設(shè)的交互有地址總線,數(shù)據(jù)總線,和控制總線,64位的cpu尋址的寬度更大,理論上運(yùn)行速度肯定是更加快的。就像拿一個(gè)水杯和一個(gè)水桶去裝水,肯定是水桶能裝的水更多。

6、參考

https://www.jianshu.com/p/62b3c153ad68
https://www.jianshu.com/p/3dbe46439359
https://blog.csdn.net/lemonpi/article/details/79620039
https://blog.csdn.net/cqupt_chen/article/details/9019841



當(dāng)你看到這里的時(shí)候,說(shuō)明你已經(jīng)閱讀完上面的內(nèi)容

不管怎樣,感謝您有心或者無(wú)意的關(guān)注和支持

想獲取學(xué)習(xí)1024G資料,請(qǐng)點(diǎn)擊狀態(tài)欄公眾號(hào)福利按鈕





創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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