亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android的基礎知識有哪些

發布時間:2022-01-12 14:29:15 來源:億速云 閱讀:145 作者:iii 欄目:大數據

本篇內容介紹了“Android的基礎知識有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

常見加密算法
編碼
  • Base64

  1. 所有的數據都能被編碼為只用65個字符就能表示的文本。
    標準的Base64每行為76個字符,每行末尾添加一個回車換行符(\r\n)。不論每行是否滿76個字符,都要添加一個回車換行符。

  2. 65字符:A~Z a~z 0~9 + / =
    URL Base64算法中,為了安全,會把 + 替換成 - ,把 / 替換成 _
    = 有時候用 ~ 或 . 代替

  3. Base64的應用
    密鑰,密文,圖片,數據簡單加密或者預處理

  4. Base64編碼解碼與btoa、atob

  • Hex

  1. 二進制數據最常用的一種表示方式。

  2. 用0-9 a-f 16個字符表示。每個十六進制字符代表4bit。也就是2個十六進制字符代表一個字節。

  3. 在實際應用中,尤其在密鑰初始化的時候,一定要分清楚自己傳進去的密鑰是哪種方式編碼的,采用對應方式解析,才能得到正確的結果 

單向散列函數(消息摘要算法)
  • 不管明文多長,散列后的密文定長

  • 明文不一樣,散列后結果一定不一樣

  • 散列后的密文不可逆

  • 一般用于校驗數據完整性、簽名 sign

  • 由于密文不可逆,所以后臺無法還原,也就是說他要驗證,會在后臺以跟前臺一樣的方式去重新簽名一遍。也就是說他會把源數據和簽名后的值一起提交到后臺。所以我們要保證在簽名時候的數據和提交上去的源數據一致,這種算法特喜歡在內部加入時間戳

  • 常見算法

    • MD5

    • SHA1

    • SHA256

    • SHA512

    • HmacMD5

    • HmacSHA1

    • HmacSHA256

加密算法

加密和解密的過程是可逆的

  • 對稱加密算法

    • 根據密鑰長度不同又分為AES-128 AES-192 AES-256

    • 其中AES-192 AES-256在Java中使用需獲取無政策限制權限文件

    • 加密/解密使用相同的密鑰

    • DES 數據加密標準

    • 3DES    TripleDES   DESede

    • AES 高級加密標準

    • CryptoJS提供ECB,CBC,CFB,OFB,CTR五種模式填充提供NoPadding ZeroPadding Pkcs7(Pkcs5) Iso10126 Iso97971 AnsiX923

  • 非對稱加密算法

    • 使用公鑰加密,使用私鑰解密

    • 公鑰是公開的,私鑰保密

    • 加密處理安全,但是性能極差,單次加密長度有限制

    • RSA既可用于數據交換,也可用于數據校驗

    • 數據校驗通常結合消息摘要算法 MD5withRSA 等

    • 兩種加密算法常見結合套路

    • 隨機生成密鑰

    • 密鑰用于AES/DES/3DES加密數據

    • RSA對密鑰加密

    • 提交加密后的密鑰和加密后的數據給服務器

    • pkcs1padding 明文最大字節數為密鑰字節數-11密文與密鑰等長

    • NoPadding    明文最大字節數為密鑰字節數     密文與密鑰等長

    • RSA

 
APK基本結構
  • lib:各種平臺下使用的對應的so文件

  • META-INF文件夾:存放工程一些屬性文件

    • CERT.RSA:公鑰和加密算法描述

    • CERT.SF:加密文件,他是使用私鑰對摘要明文加密后得到的密文信息,只有使用私鑰配對的公鑰才能解密該文件

    • MANIFEST.MF:程序清單文件,他包含包中所有文件的摘要明文

  • resource.arsc:資源加密(語言包)對res目錄下的資源的一個索引文件,保存了原工程中strings.xml等文件內容

    • drawable:圖片

    • layout:布局

    • menu:菜單

  • AndriodMainfest.xml:清單文件(圖標、界面、權限、入口),安卓工程的基礎配置屬性文件。

  • classes.dex:java代碼編譯得到的Dalvik VM能直接執行的文件

  • assets:資源文件(圖片、音頻、數據庫、網頁、配置文件等)

  • res:資源文件,需要編譯

 
res目錄與assets目錄區別在哪?
  • res目錄下的資源文件在編譯時會自動生成索引文件(R.java),在java代碼中用R.xxx.yyy來引用

  • asset目錄下的資源文件不需要生成索引,在java代碼中需要用AssetManager中訪問。

  • 一般來說,除了音頻和視頻資源(需要放在raw或asset下),用java開發的安卓工程使用到的資源文件都會放到res下;使用c++游戲引擎的資源文件均需要放在asset下。

 
JVM、DVM與ART
  • JVM:Java虛擬機,運行的是.java文件編譯后的.class文件

  • DVM:Android4.4及以前使用的都是Dalvik虛擬機,我們知道Apk在打包的過程中會先將java等源碼通過javac編譯成.class文件,但是我們的Dalvik虛擬機只會執行.dex文件,這個時候dx會將.class文件轉換成Dalvik虛擬機執行的.dex文件。Dalvik虛擬機在啟動的時候會先將.dex文件轉換成快速運行的機器碼,又因為65535這個問題,導致我們在應用冷啟動的時候有一個合包的過程,最后導致的一個結果就是我們的app啟動慢,這就是Dalvik虛擬機的JIT特性。

  • Dalvik是google專門為安卓操作系統設計的一個虛擬機,經過深度的優化,雖然安卓上的程序是使用java來開發的,但是Dalvik和標準的java虛擬機JVM還是兩回事,Dalvik VM是基于寄存器的,而JVM是基于棧的;Dalvik有專屬的文件執行格式dex,JVM則執行的是java字節碼。

  • 通過Dalvik的字節碼我們不能直接看到原來的邏輯代碼,這是需要借助如Apktool或dex2jar+jd-gui工具來幫助查看,但是注意的是最終我們修改APK需要操作的是.smali文件,而不是導出來的java文件重新編譯。

  • ART:ART虛擬機是在Android5.0才開始使用的Android虛擬機,ART虛擬機必須要兼容Dalvik虛擬機的特性,但是ART有一個很好的特性AOT(ahead of time),這個特性就是我們在安裝APK的時候就將dex直接處理成可直接供ART虛擬機使用的機器碼,ART虛擬機將.dex文件轉換成可直接運行的.oat文件,ART虛擬機天生支持多dex,所以也不會有一個合包的過程,所以ART虛擬機會很大的提升APP冷啟動速度。
    Xposed hook的是Java代碼,所以Xposed不支持5.0以及以上系統。

 
安卓分區

Android通常有以下分區(用df 來查看分區情況)

  • System分區: 就是我們刷ROM的分區

  • Data分區:  分區就是我們裝APK的分區

  • Catch分區:  是緩存分區

  • SDCard分區: 就是掛載的SD卡。

data分區常見目錄:app、system、data、local、misc

  1. data/data目錄
    存放的是所有APK程序數據的目錄,每個APK對就一個自己的Data目錄,就是在data/data/目錄下,會產生一個跟 Package一樣的目錄。比如有一個APK,它的包名叫com.test.hello,則在data/data/目錄下會有一個 com.test.hello的目錄,這個APK只能操作此目錄,不能操作其它APK的目錄

  2. data/app目錄
    用戶安裝的APK放在這里。我們如果把APK放入這個文件夾下面的話,就算安裝好了。這就叫靜默安裝。不用管APK文件里面的lib目錄下的庫文件,系統會自動幫我們放入調用庫

  3. data/misc目錄
    保存WIFI帳號,VPN設置信息等。比如保存了一個WIFI連接帳號,則此目錄下的WIFI目錄下面wpa_supplicant.conf可以查看到

system分區常用目錄:app、lib、xbin、bin、media、framework

  1. system/app目錄
    存放系統自帶的APK。將APK放入到System/app目錄下,也是靜默安裝

  2. system/lib目錄
    存放APK程序用到的庫文件

  3. system/bin目錄和system/xbin目錄
    存放的是shell命令

  4. system/framework目錄
    啟用Android系統所用到框架,如一些jar文件

sd卡目錄:/sdcard    /mnt/sdcard

“Android的基礎知識有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昭觉县| 沈丘县| 吉水县| 藁城市| 利津县| 湖南省| 封丘县| 柘荣县| 平山县| 炎陵县| 手游| 师宗县| 全南县| 娱乐| 台州市| 扎囊县| 永安市| 惠州市| 托克逊县| 浦东新区| 平远县| 徐闻县| 甘德县| 定兴县| 来宾市| 凤凰县| 绥江县| 蓬安县| 社旗县| 黄冈市| 新巴尔虎右旗| 连平县| 平乐县| 梨树县| 湟源县| 遂溪县| 明溪县| 孝义市| 千阳县| 鄂托克前旗| 宝鸡市|