為什麼安卓國產APP的體積越來越大?

lxvvx


手機的硬件和軟件是相輔相成的,硬件推動軟件,軟件倒逼硬件,手機內存隨著技術的發展做的越來越大,每GB內存價格也在降低,所以這也推動了手機APP和各類軟件可以做的更大,功能更多,畢竟內存太大的話用不了也是浪費,手機軟件順其自然增加功能和界面美觀度也是非常正常的。

手機軟件因為功能和界面的加強提高內存佔用量是正常的,同一款APP我們可以看到數年前的版本和最新版差距非常大,佔用的內存量也可能相差好幾倍,如果是正常的增加還可以理解,但是問題在於國內大量的APP開發公司對程序的優化工作做的不足,也就是說仗著手機內存容量的大幅度增加,開發者們為了節省時間和成本放鬆了代碼優化工作,這樣就會使軟件的內存佔用不合理的大幅增加。

畢竟不是誰都會頻繁更換手機,對於老手機用戶來說,很多新版本的軟件內存佔用過大,尤其是每次更新版本幾乎都會增加佔用量,但是用起來卻沒什麼差別,這樣自然就會導致網友們的吐槽。畢竟操作系統本身不會頻繁更新,但是手機上大部分的APP都會三天兩頭的進行更新,手機越用越卡當然有它們的問題。

也正因為此,國產手機大部分都會配備較大的內存容量,即使是便宜的千元級在存儲容量上也不會太吝嗇,這就是為了應對大量不注意優化、頻繁更新的國產軟件,就軟件生態環境和優化程度來看,國外普遍做的比國內要好。


嘟嘟聊數碼


樓主都說“他們”是流氓了,當然就乾點流氓的勾當唄!

我覺得吧,滋生這些流氓的土壤是關鍵作用。只要有強大的約束肯定流氓也不敢耍流氓了!

相對而言Googleplay下載的的APP要好些,下面上截圖(前三個截圖圖片是用的截圖拼接APP拼接的,可能有點錯位,請大家見諒。),至於這款視頻類APP,國內APP(國內這類APP我手機裡沒有)的權限需求我敢打包票肯定不止這麼幾個!



下面再插兩個純國產的


說個題外話:自從限制了同花順的所有權限,現在我的賬戶根本不存在經常在異地登錄導致逼迫我的賬戶下線(而且打同花順客服電話也不管用),之前沒限制權限的時候,一天都能逼迫我賬戶下線n次,而且最憎恨的就是要下單交易的時候被迫下線。

下面就貼出我手機裡所有(包括手機自帶)APP截圖的緩存佔用情況!













完畢,謝謝閱讀!


誰遇而按


我是做Android的,我給大家說說原因吧。Android軟件大主要是以下幾方面造成的。 1 Android界面功能的實現難度。Android相對於apple在某些方面實現起來很困難。比如Android的廣告推送。蘋果有自己的服務器可以用,而谷歌的服務器卻不能用。咋辦,於是有了n 種辦法,有的人會用第三方比如百度。但更多的公司會自己實現。廣告推送是與盈利掛鉤的,這是一個很重要的功能。一個廣告推送就會讓app 多產生七八個類,幾百行甚至幾千行代碼。但這不是最重要的,最重要的是因為這個功能太重要了,以至於每一個Android APP都會有。而這個功能因為需要推送,所以這個功能需要後臺24小時運行。這導致無數個pushService在後臺運行,他們佔用內存,佔用cpu 有的甚至索要權限進行電話錄製,複製個人信息。 2 android 界面相對於蘋果而言,實現有點困難。這種困難從Android出生的那一刻就存在了。一個界面就有一個activity,而n 個界面就有n 個activity。n個activity裡面因為某種原因造成代碼冗餘。於是有了fragment,但是fragment在深度嵌套時會有許多難度而最典型的難度就是傳值,頁面跳轉。這一下字增加了其複雜度。因為要實現會產生很多冗餘代碼。 3 軟件升級。相對於蘋果,Android的升級十分的頻繁。Java程序最大的特點是可重用性,特別適合二次開發。絕大部分的程序員,在軟件升級時,是不會去刪除那些不用的代碼的。為了兼容老版本,就更不行了。這導致產生龐大的廢代碼。 4 界面佈局文件。界面佈局的碎片十分的多,而這些碎片和Java代碼是相關的。一個app 頁面越多,產生的垃圾佈局文件越多。好多公司為了追求速度和程序的可閱讀性,是不會主動去刪過時的代碼和佈局文件。 5 圖片,圖標。APP的代碼體積有相當大的可能是圖片造成的。圖片越多會造成APP體積極速擴張。與媒體相關的視頻,遊戲變成巨霸就成為無可厚非的事。但是還有一個重要原因就是Android的適配。因為Android手機碎片化嚴重,為了用戶體驗,常常需要2套以上的圖片,圖標。


希望之草


作為一名學軟件開發的大學生簡單說一下這個問題,科技發展真是日新月異,每天都會有很多新的革新,從功能機到半智能機到智能機,可以說手機逐漸有了替代電腦的趨勢,而這取決去ios和Android的強大,越什麼安卓的app越來愈大了呢?

1、軟件的更新,技術的創新:隨著新技術的推出,同一款手機app的軟件可以說是越來越多,拿QQ來說,最開始只是聊天的工具,現在運動、支付、辦公等,都集成在一起,也就相當於把幾款app捆綁在一起,必然會導致軟件增大。

2、國產軟件碎片化:可以說安卓軟件碎片化特別嚴重,監管鬆懈,廣告等也成了必備,軟件的背後更多的是代碼的積累。

3、缺少谷歌的支持:國內沒有谷歌的服務器支持,很多功能需要廠商自己想辦法解決,例如:消息推送,國外的安卓可以通過谷歌服務器同意推送消息,不需要軟件實時運行,而國內的只好保持軟件長期處於後臺運行,而這些功能的實現,必然是由代碼組成。

4、技術方面:android 界面會產生部分冗餘代碼。一個界面對應一個activity,n 個界面就有n 個activity。這樣就造成代碼冗餘。fragment可以解決,但fragment在嵌套時傳值、頁面跳轉都比較困難。增加了複雜度,功能的實現會產生很多冗餘代碼。

隨著安卓系統不斷的更新,很多系統短板得到解決,當然,安卓還有很長的路需要走。同時手機app的監管也是一個有待解決的問題。


lisongye


這個你還慶幸自己不是是用iOS,iPhone 的App 動輒都是上百M,出門在外都不敢下載App。

至於Android,這個不做開發的還真不知道,效率君個大家科普一些常識吧。

一個App 安裝是一個APK 包,它會包含資源文件,代碼,第三方依賴的包,不同手機CPU 的兼容。具體是哪些內容,下面會詳細介紹。


資源文件

就是所謂靜態的資源,就是圖片呀,小圖標呀等等。比如像引導頁的圖片,還有啟動Icon,佈局文件等等。這還算一小部分。

代碼

代碼這塊也算少部分啦,畢竟都是文字,也沒什麼問題。

第三方依賴

這個是個重頭戲,也佔用了很大的包,你打包也不會把它們壓縮。

一般開源控件,都是依賴它們整體的代碼。

一般公司很多服務都是使用第三方的東西,比如推送,定位,視頻播放,登錄,IM 等。有的包真的大的要命,有的一個都有幾M。

不同手機CPU 的兼容

這個主要是第三方的服務,因為第三方服務有C 的代碼,兼容到底層就需要對不同CPU 添加,比如arm,高通都要打,這樣一來無緣無故多了這麼多。


除了上面的原因,當然隨著一個公司的發展,業務的複雜,引入的東西越來越多,App 的體積越來越臃腫,想要瘦身更是無從談起。而且有的老東西不用,可能也忘記刪除了,也在裡面放著。

雖然也有不少瘦身APK 的方案,但是一般也沒有這個需求,也很少有人做,而且很多應用市場都推出增量更新版本,而且自帶的應用市場,可以自動更新新版本,也很方便,很少人會注意到這個問題。

APK 的大小隻是很少的,App 的緩存內容,是個大頭,會慢慢侵蝕你的手機內存,所以還是要定時清理手機內存,讓你的Android 手機保持清爽不卡頓。


高效率工具蒐羅


一個安卓應用越來越大的原因主要有一下幾點:

1、適配不同的機型

由於安卓手機的碎片化,市場上的機型越來越多,不同的廠商,不通的屏幕大小,這些都要更具不通的設備來做不同的處理,比如同樣的代碼,在華為上可以運行,在小米就沒有反應,所以要做兩套,又比如,屏幕大一點的手機顯示的內容要多一點,小一點的手機又要少一點。還有不同的系統版本,不通的推送平臺等等,這樣下來,一個應用的某個功能可能會有很多套代碼,而你只有其中一套,自然就會冗餘。

2、保存用戶信息

現在基本每家公司都會有做大數據,何謂大數據,其實就是收集用戶的各種操作習慣,然後保存起來,在慢慢上傳到服務器。這些收集的數據,自然是先保存在手機的,有的體驗差的應用可能連刪都不會刪,或者很久才刪一次。還有就是保存一些用戶的習慣,優化體驗啊,比如說保存帳號密碼,緩存一些網絡請求等等,最後就是用戶主動保存的一下圖片、視頻、文件等等。這樣一來,應用佔用的空間自然就很大。

3、功能越來越複雜

功能一多,自然應用就到了,就拿微信來說,一開始就聊天、朋友圈的簡單功能,然後慢慢的支付、紅包、小視頻、搖一搖,還有就是最近新出的實驗室的看一看、搜一艘和火了一段時間的小程序等等功能,光一個小程序,可以讓用戶直接打開各種樣子的視圖,這些視圖一部分從服務器讀取下來,一部分本來就寫在本地的,否則你開打一個小程序不會這麼快,所以佔用的空間自然也會越來越大。


_貝風


希望之草 這位朋友回答的很詳細,歸納起來就是全家桶、鏈啟動、權限索取無度、安卓系統高度開源,以及代碼優化不到位導致的,而且還有最重要的一點

蘋果手機多年就是4.7英寸,5.5英寸,或者像iPhone SE 4英寸,APP適配起來更簡單,安卓的手機尺寸,屏幕分辨率太奇葩,而且差距太大,所以很多APP廠商在做程序的時候,要針對所謂的自適應分辨率做好幾套內容。


李沛超


一張圖你應該就可以理解了吧,請看最中間的那個五星好評。(截圖來自Google Play)



小科技大改變


他們說的都太專業了,我也不是程序員,作為普通的手機軟件用戶,來談一談我個人的看法。

比如說以前的手機瀏覽器,我記得我在大學的時候還用的,諾基亞的手機,手機瀏覽器就是用來上網搜索資料,百度資料用的,沒有其他的多餘的功能,當時最火的應該就是uc瀏覽器了,俗稱上網。當時就覺得這個瀏覽器很良心。

剛慢慢的到了安卓手機,手機的處理能力也大大的提升,現在軟件的功能也越來越多,我們還以瀏覽器,現在的瀏覽器除了上網查資料以外,進入首頁之後都會有一些推送的新聞或者視頻,讓你打開手機瀏覽器,就會被這些新聞和資訊,還是支書,被首頁的廣告或者是新聞資訊,都可能是軟件商的一部分很豐厚的收入。

還有就是以前的QQ只是用來作為一個聊天的工具,但是現在我們看一下QQ的功能,我們只能說功能太強大了,在這些功能強大的背後都是無數串的代碼,而這些東西肯定是,佔用手機內存的,同時這些多的功能也可以幫助到我們一些,但是絕大部分的功能都是沒有用的,所以親愛的,人間都越做越大,功能越多,肯定佔的內存就越大了,

我看看現在的手機配置,運行內存,現在都到8個g了,我現在家用的普通電腦,最多也就8g,你想想,這樣的情況,按著手機的軟件能直接做越想嗎?


數碼小達人



我的也好佔內存😓


分享到:


相關文章: