男人网站,国产精品对白刺激久久久,性XXXX欧美老妇506070,哦┅┅快┅┅用力啊┅┅在线观看

一個(gè)時(shí)代即將終結(jié)!安卓應(yīng)用告別 APK 格式

每日快訊
2021
07/05
22:17
電腦報(bào)
分享
評(píng)論

來源:電腦報(bào)

我們知道,Android 應(yīng)用是以 APK 格式呈現(xiàn)。從接觸安卓系統(tǒng)開始,APK 就一直陪伴著我們,可現(xiàn)在,屬于 APK 的時(shí)代恐怕真得要過去了 ……

01

因安卓而被熟知的 APK 格式

APK 全稱 Android application package,意為 "Android 應(yīng)用程序包 ",是 Android 操作系統(tǒng)使用的一種應(yīng)用程序包文件格式,用于分發(fā)和安裝移動(dòng)應(yīng)用及中間件。

一個(gè) Android 應(yīng)用程序的代碼想要在 Android 設(shè)備上運(yùn)行,必須先進(jìn)行編譯,然后被打包成為一個(gè)被 Android 系統(tǒng)所能識(shí)別的文件才可以被運(yùn)行,而這種能被 Android 系統(tǒng)識(shí)別并運(yùn)行的文件格式便是 "APK"。

APK 文件其實(shí)是 zip 格式,但后綴名被修改為 apk,通過 UnZip 解壓后,可以看到 Dex 文件,Dex 是 DalvikVM executes 的簡(jiǎn)稱,即 Android Dalvik 執(zhí)行程序,并非 Java ME 的字節(jié)碼而是 Dalvik 字節(jié)碼。Android 在運(yùn)行一個(gè)程序時(shí)首先需要 UnZip,然后類似 Symbian 那樣直接,但不同于 Windows mobile 中的 PE 文件,程序的保密性和可靠性不是很高,通過 dexdump 命令可以反編譯它,但這種架構(gòu)符合發(fā)展規(guī)律,微軟的 WindowsGadgets ( WPF ) 也采用了這種架構(gòu)方式。

在 Android 平臺(tái)中,dalvikvm 的執(zhí)行文件被打包為 apk 格式,最終運(yùn)行時(shí)加載器會(huì)先解壓,然后獲取編譯后的 androidmanifest.xml 文件中的 permission 聲明對(duì)安全訪問的限制,要知道仍然存在很多安全限制,但將 apk 文件傳到 /system/app 文件夾下會(huì)發(fā)現(xiàn)執(zhí)行是不受限制的。也許我們平時(shí)安裝都不會(huì)選用這個(gè)文件夾,但在 androidrom 中,系統(tǒng)的 apk 文件默認(rèn)會(huì)放入這個(gè)文件夾,它們擁有 root 權(quán)限。

如今這一格式要被取代了,據(jù) Android Authority 報(bào)道,安卓宣布 AAB 格式將取代 Android APK。

02

安卓宣布啟用 AAB 格式

據(jù)悉,安卓早在 2018 年推出了 AAB 新格式(AAB 全稱為 "Android App Bundles"),安卓聲稱這種新格式將使應(yīng)用程序文件更小。

目前在 Google Play 數(shù)百萬個(gè)應(yīng)用程序中,已經(jīng)有數(shù)千個(gè)應(yīng)用程序率先跟進(jìn)了 AAB 格式。

現(xiàn)在安卓宣布 AAB 正式取代 Android APK,從今年 8 月份開始,所有提交到 Google Play 商店的新應(yīng)用必須采用 AAB 格式。

Android App Bundle 是一種發(fā)布格式 —— 精確地說,是一個(gè)帶有 .aab 擴(kuò)展名的 zip 文件。它包含應(yīng)用支持的所有設(shè)備的代碼和資源,例如 DEX 文件、本地代碼庫、清單文件、各種資源文件等。一旦上傳用于發(fā)布,Google Play 就會(huì)處理 APK 的簽名和生成,這個(gè)過程稱為動(dòng)態(tài)交付 ( Dynamic Delivery ) 。動(dòng)態(tài)交付的用途是,根據(jù)用戶的設(shè)備配置為用戶生成優(yōu)化的 APK。那么這究竟是怎么做到的?

分拆 APK ( 在 Lollipop 中引入 ) 是從給定的 Android App Bundle 生成的,其行為與單個(gè) APK 無異。一個(gè)典型的應(yīng)用可以獲得一個(gè)基礎(chǔ) APK 和多個(gè)配置 APK。而且,如果應(yīng)用具有動(dòng)態(tài)功能,用戶也可以獲得動(dòng)態(tài)功能 APK 及其配置 APK?;?APK 包含所有設(shè)備配置共有的文件,如清單文件。配置 APK 是為您生成的,每個(gè)之中都包含有特定設(shè)備配置的相關(guān)資源:語言、CPU 架構(gòu)或屏幕像素密度。因此,用戶將獲得標(biāo)準(zhǔn)的基本 APK ( 與所有其他設(shè)備一樣 ) 以及僅包含用戶設(shè)備相關(guān)資源的配置 APK。

這意味著,如果我使用的是一臺(tái) Android One 手機(jī) ( 小米 A1 ) 而且我設(shè)置的主要語言是英文,則這臺(tái)手機(jī)將獲得基礎(chǔ) APK 以及支持英文、arm64 CPU 架構(gòu)和 xhdpi 屏幕分辨率的配置 APK。更棒的是,當(dāng)設(shè)備配置 ( 如語言 ) 發(fā)生變化時(shí),Google Play 會(huì)檢測(cè)到它,并下載該語言的配置 APK。為了進(jìn)一步降低 APK 大小,我們正計(jì)劃推出基于紋理壓縮格式、圖形 API 和新平臺(tái)功能的分發(fā)方案。

動(dòng)態(tài)功能 APK 包含用戶首次安裝應(yīng)用時(shí)不需要的應(yīng)用功能代碼和資源。開發(fā)者可以把這些用途或功能添加到他們的應(yīng)用中,Google Play 會(huì)按需提供這些動(dòng)態(tài)功能模塊,而不是在安裝時(shí)統(tǒng)一添加,從而進(jìn)一步減少應(yīng)用下載體積。這也很好理解:我們有必要將那些消耗空間且在安裝時(shí)根本用不著的功能,以及那些很少用得著的功能,都打包進(jìn)動(dòng)態(tài)功能模塊中,這將顯著減少用戶安裝時(shí)的文件下載量。

安裝早于 Android Lollipop 版本的設(shè)備也可以享受安裝文件體積縮小的福利,但其 APK 中將包含所有語言。

在如今,很顯然構(gòu)建一個(gè)統(tǒng)一的臃腫的 APK 的做法已經(jīng)過時(shí)了。Android App Bundle 代表著 Android 應(yīng)用交付的未來,接下來我們就可以看到如何構(gòu)建這樣的一個(gè)安裝包。

03

安卓 APP 即將迎來大瘦身

了解 ABB 是什么和它的工作原理以后,人們不禁會(huì)好奇 ABB 究竟能讓 APK 程序占用的空間小多少?

目前,國內(nèi)的開發(fā)者將所有資源統(tǒng)一放在單個(gè) APK 中,這樣就會(huì)導(dǎo)致 APK 特別龐大,而 AAB 在壓縮 APK 體積方面具有優(yōu)勢(shì)。

而為了縮小體積,部分開發(fā)者會(huì)有意縮減 APK 中的 ABI 目錄。例如,將 arm64-v8a 的 SO 從 APK 中去除,只留下 armeabi-v7a 的 SO。但這種做法使得 64 位 CPU 的手機(jī)無法發(fā)揮出其 64 位的運(yùn)算優(yōu)勢(shì),降低程序運(yùn)行速度。

Split APKs 是 Android 5.0 開始提供的多 APK 構(gòu)建機(jī)制,借助 Split APKs 可以將一個(gè) APK 基于 ABI、屏幕密度和 CPU 架構(gòu)拆分成多個(gè) APK ,這樣可以有效減少單個(gè) APK 體積。當(dāng)用戶下載應(yīng)用程序安裝包時(shí),Google Play 會(huì)自動(dòng)識(shí)別用戶的語言和 CPU 架構(gòu),自動(dòng)將對(duì)應(yīng)平臺(tái) SO 和資源的 APK 下發(fā)給用戶。

這樣說是不是還是有些云里霧里的感覺,其實(shí) Android App Bundle 的早期采用者已經(jīng)發(fā)現(xiàn),動(dòng)態(tài)交付顯著減小了他們的應(yīng)用體積。一些開發(fā)者甚至可以將他們的 APK 大小減半,而一些知名 app 使用 App Bundle 減小應(yīng)用體積的數(shù)據(jù)也有放出來。

除了壓縮體積外,ABB 在 " 防二次打包 " 一類安全性上也有所表現(xiàn),可安卓這一次改動(dòng)真是技術(shù)更迭的推動(dòng)又或者為了給用戶更好的使用體驗(yàn)嗎?

04

想要收攏權(quán)限的安卓

.aab 模塊引入了 Split APK 概念。簡(jiǎn)單的來講,就是在安裝前,會(huì)自動(dòng)檢測(cè)用戶的硬件配置,然后以多個(gè) .apk 的形式安裝應(yīng)用??赡壳?,使用 Split APK 的應(yīng)用程序,用戶是無法直接提取安裝的,都需要借助第三方工具來備份安裝。這意味著,未來用戶在非谷歌應(yīng)用商店的第三方平臺(tái),下載安裝應(yīng)用會(huì)越來越困難。

雖然 .aab 模塊化特性,極大的提升了開發(fā)者的更新維護(hù)的便捷性,節(jié)省了用戶在安裝應(yīng)用的時(shí)間和存儲(chǔ)空間 。就因?yàn)?.aab 的存在,隨著用戶使用設(shè)備、所在環(huán)境的不同,所安裝的應(yīng)用可能也不盡相同,應(yīng)用也就是 " 不完整的 "。

并且,通過官方文檔,我們發(fā)現(xiàn)了:使用 app bundle ,開發(fā)者就必須加入 Google Play 應(yīng)用簽名計(jì)劃。簽名相當(dāng)于打上唯一的電子標(biāo)簽,因此,如果應(yīng)用被以非正常方式提取分享,就可能導(dǎo)致簽名改變,最終影響應(yīng)用運(yùn)行。除非,開發(fā)者自行在第三方平臺(tái)提供完整的應(yīng)用安裝包。

只能通過指定應(yīng)用商店下載、應(yīng)用 " 不完整 "、分享限制。這些重重限制,Android 用戶都有受到影響。

再往深處想一下,如果說 .aab 應(yīng)用格式落實(shí),對(duì) Android 用戶而言,只是增加了第三方下載應(yīng)用的難度。那么對(duì)于鴻蒙 OS 而言,這可能是一個(gè)巨大的挑戰(zhàn)。

目前鴻蒙 OS 的軟件大多還是以安卓應(yīng)用為主。所以如果谷歌全面使用 .aab ,肯定會(huì)對(duì)鴻蒙產(chǎn)生不利條件。

當(dāng)然,這樣的想法或許是我們多心了,究竟安卓應(yīng)用這一次改變劍指何處,恐怕還需要時(shí)間來驗(yàn)證。

THE END
廣告、內(nèi)容合作請(qǐng)點(diǎn)擊這里 尋求合作
快訊
免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表砍柴網(wǎng)的觀點(diǎn)和立場(chǎng)。

相關(guān)熱點(diǎn)

據(jù)國外媒體報(bào)道,蘋果系統(tǒng)狀態(tài)追蹤器顯示,包括App Store、iTunes Store、Apple Music和Mac App Store等的在線服務(wù)遭遇未知故障,這些旗艦服務(wù)連接都處于時(shí)斷時(shí)續(xù)狀態(tài)。
業(yè)界
國慶中秋假期期間,科技領(lǐng)域重要新聞不斷,以下為新浪科技精心為大家總結(jié)的國慶中秋假期要聞回顧。
業(yè)界
終于等到了周四,今天的新聞軟硬適中,口感豐富。廢話少說,不妨直接瀏覽昨晚今晨科技、互聯(lián)網(wǎng)圈又發(fā)生了什么。
業(yè)界
在高鐵上點(diǎn)外賣是一種什么樣的體驗(yàn)?你很快就能知道啦
業(yè)界
全球近100個(gè)國家遭勒索軟件攻擊 7.5萬臺(tái)計(jì)算機(jī)感染
原創(chuàng)

相關(guān)推薦

1
3