目錄
- 概述
- 庫
- 1. aac-fdk-aac庫解碼aac
- 2. adeb-Ubuntu的shell環境
- 3. adhd-播放音樂的
- 4. android-clat-ipv4轉ipv6進行傳輸的
- 5. androidplot-畫表格的
- 6. angle-openGL ES轉Vulkan,桌面級opengl,direct3D等
- 7. ant-glob-ant庫中用來匹配路徑glob通配符的庫,ant是用來打包和編譯java的工具
- 8. antlr-計算機語言的解析
- 9. apache-commons-bcel-解析java類文件,java文件變為.class文件
- 10. apache-commons-compress-tar,zip,cpio,bzip2,7zip格式的壓縮包解壓縮,java庫
- 11. apache-commons-math-數學相關的java庫,有矩陣,統計等
- 12. apache-harmony-java SDK實現,只有測試代碼
- 13. apache-http-關於http的java庫,有android.net.http的實現
- 14. apache-xml-解析xml的java庫,源碼中比較少引用到
- 15. arm-neon-tests-arm的neon指令的測試,並行加速矩陣運算
- 16. arm-optimized-routines-arm優化例子,有math和string庫的優化
- 17. arm-trusted-firmware-安全啟動相關
- 18. autotest-linux自動化測試框架
- 19. avb-安卓驗證啟動
- 20. bc-linux計算器
- 21. bcc-linux內核trace工具,可以使用adeb工具來用
- 22. blktrace-追蹤塊設備調用的工具
- 23. boringssl-https加密庫,從openssl分出來的
- 24. bouncycastle-提供了很多哈希算法和加密算法的第三方庫
- 25. brotli-Google推出的無損壓縮算法,比gzip更快更小
- 26. bsdiff-用來生成差分包以及APK的增量更新
- 27. bzip2-.tar.bz2工具,只壓縮不歸檔
- 28. caliper-Google開發的性能測試工具
- 29. capstone-反匯編框架
- 30. catch2-輕量級c++單元測試框架
- 31. cblas-矩陣運算庫
- 32. cbor-java-基於json的簡明二進制對象展現
- 33. chromium-libpac-瀏覽器代理自動配置
- 34. chromium-trace-Android systrace性能分析工具
- 35. chromium-webview-webview瀏覽器apk
- 36. clang-LLVM的編譯前端,支持代碼靜態檢查
- 37. cldr-通用語言環境數據倉庫,Common Locale Data Repository
- 38. cn-cbor-基於json的簡明二進制對象展現,c語言實現
- 39. compiler-rt-(runtime)項目為硬件不支持的低級功能提供目標特定的支持。
- 40. conscrypt-加密安全相關的庫
- 41. cpu_features-跨平台的用來檢索CPU功能的c庫-解析/proc/cpuinfo文件得到
- 42. cpuinfo-有關/proc/cpuinfo的信息
- 43. crcalc-構造實數計算器-用級數來計算實數
- 參考
概述
├── aac // 用於Android的全稱Fraunhofer FDK AAC編解碼器庫,多媒體相關
├── adeb // 為Android設備提供Ubuntu那樣的shell環境,可以運行python,apt-get安裝軟件等等
├── adhd // 用於監視A / V設備事件的守護程序,該目錄下有個cras,為ChromeOS Audio Server,用來播放音樂的
├── android-clat // 用NAT64/DNS64支持ipv4轉ipv6,ipv4包 -> clat進程客戶端 -> Nat 4->6變為ipv6包 -> 經ipv6網絡 -> Nat 6->4 -> plat server轉為ipv4 -> ipv4服務器
├── androidplot // Android中用來畫表格的庫
├── angle // Almost Native Graphics Layer Engine,幾乎全部的本地圖形層引擎。支持openGL ES轉Vulkan,桌面級opengl,direct3D等
├── ant-glob // ant庫中用來匹配路徑glob通配符的庫,ant用來打包和編譯java
├── antlr // 計算機語言的解析,和編譯原理相關
├── apache-commons-bcel // 解析java的字節碼,java文件變為.class文件,java的庫
├── apache-commons-compress // tar,zip,cpio,bzip2,7zip格式的壓縮包解壓縮,java的庫
├── apache-commons-math // 數學相關的java庫,有矩陣,統計等
├── apache-harmony // java SDK實現,只有測試代碼
├── apache-http // 關於http的java庫,有android.net.http的實現
├── apache-xml // 解析xml的java庫,源碼中比較少引用到
├── arm-neon-tests // arm的neon指令的測試,並行加速矩陣運算
├── arm-optimized-routines // arm優化例子,有math和string庫的優化
├── arm-trusted-firmware // 安全啟動相關(√)和optee相關
├── autotest // linux自動化測試框架
├── avb // 安卓驗證啟動
├── bc // linux計算器
├── bcc // linux內核trace工具,可以使用adeb工具來用
├── blktrace // 追蹤塊設備調用的工具
├── boringssl // https加密庫,從openssl分出來的
├── bouncycastle // 提供了很多哈希算法和加密算法的第三方庫
├── brotli // Google推出的無損壓縮算法,比gzip更快更小
├── bsdiff // 用來生成差分包以及APK的增量更新
├── bzip2 // .tar.bz2工具,只壓縮不歸檔
├── caliper // Google開發的性能測試工具
├── capstone // 反匯編框架
├── catch2 // 輕量級c++單元測試框架
├── cblas // 矩陣運算庫
├── cbor-java // 基於json的簡明二進制對象展現,java語言實現
├── chromium-libpac // 瀏覽器代理自動配置
├── chromium-trace // Android systrace性能分析工具
├── chromium-webview // webview瀏覽器apk
├── clang // LLVM的編譯前端,支持代碼靜態檢查
├── cldr // 通用語言環境數據倉庫,Common Locale Data Repository
├── cn-cbor // 基於json的簡明二進制對象展現,c語言實現
├── compiler-rt // Compiler-RT(runtime)項目為硬件不支持的低級功能提供目標特定的支持。
├── conscrypt // 安卓加密安全相關的庫
├── cpu_features // 跨平台的用來檢索CPU功能的c庫-解析/proc/cpuinfo文件得到
├── cpuinfo // 有關/proc/cpuinfo的信息
├── crcalc // 構造實數計算器-用級數來計算實數
├── cros //
├── crosvm
├── curl
├── dagger2
├── deqp
├── deqp-deps
├── desugar
├── dexmaker
├── dlmalloc
├── dng_sdk
├── dnsmasq
├── doclava
├── dokka
├── drm_hwcomposer
├── drrickorang
├── dtc
├── dynamic_depth
├── e2fsprogs
├── easymock
├── eigen
├── elfutils
├── emma
├── error_prone
├── ethtool
├── exoplayer
├── expat
├── f2fs-tools
├── fastrpc
├── fdlibm
├── fec
├── flac
├── flatbuffers
├── fmtlib
├── fonttools
├── FP16
├── freetype
├── fsck_msdos
├── fsverity-utils
├── FXdiv
├── gemmlowp
├── gflags
├── giflib
├── glide
├── golang-protobuf
├── google-benchmark
├── google-breakpad
├── google-fonts
├── google-fruit
├── google-styleguide
├── googletest
├── gptfdisk
├── grpc-grpc
├── grpc-grpc-java
├── guava
├── guice
├── gwp_asan
├── hamcrest
├── harfbuzz_ng
├── honggfuzz
├── hyphenation-patterns
├── icu
├── igt-gpu-tools
├── image_io
├── ImageMagick
├── ims
├── iperf3
├── iproute2
├── ipsec-tools
├── iptables
├── iputils
├── iw
├── jacoco
├── jarjar
├── javaparser
├── javapoet
├── javasqlite
├── jcommander
├── jdiff
├── jemalloc
├── jemalloc_new
├── jline
├── jsilver
├── jsmn
├── jsoncpp
├── jsr305
├── jsr330
├── junit
├── junit-params
├── kernel-headers
├── kmod
├── kotlinc
├── kotlinx.coroutines
├── ksoap2
├── libaom
├── libavc
├── libbackup
├── libbrillo
├── libcap
├── libcap-ng
├── libchrome
├── libcups
├── libcxx
├── libcxxabi
├── libdaemon
├── libdivsufsort
├── libdrm
├── libepoxy
├── libese
├── libevent
├── libexif
├── libffi
├── libfuse
├── libgav1
├── libgsm
├── libhevc
├── libiio
├── libjpeg-turbo
├── libkmsxx
├── libldac
├── libmpeg2
├── libnetfilter_conntrack
├── libnfnetlink
├── libnl
├── libogg
├── libopus
├── libpcap
├── libphonenumber
├── libpng
├── libprotobuf-mutator
├── libsrtp2
├── libtextclassifier
├── libunwind
├── libunwind_llvm
├── libusb
├── libutf
├── libvpx
├── libvterm
├── libxaac
├── libxkbcommon
├── libxml2
├── libyuv
├── linux-kselftest
├── llvm
├── lmfit
├── ltp
├── lua
├── lz4
├── lzma
├── markdown
├── mdnsresponder
├── mesa3d
├── mime-support
├── minigbm
├── minijail
├── mksh
├── mockftpserver
├── mockito
├── mockwebserver
├── modp_b64
├── mp4parser
├── mtpd
├── nanohttpd
├── nanopb-c
├── naver-fonts
├── neon_2_sse
├── neven
├── newfs_msdos
├── nfacct
├── nist-pkits
├── nist-sip
├── nos
├── noto-fonts
├── oauth
├── objenesis
├── oj-libjdwp
├── okhttp
├── one-true-awk
├── opencensus-java
├── OpenCL-CTS
├── OpenCSD
├── openssh
├── oss-fuzz
├── owasp
├── parameter-framework
├── pcre
├── pdfium
├── perfetto
├── piex
├── ply
├── ppp
├── proguard
├── protobuf
├── psimd
├── pthreadpool
├── puffin
├── python
├── rappor
├── Reactive-Extensions
├── replicaisland
├── rmi4utils
├── robolectric-shadows
├── roboto-fonts
├── rootdev
├── rust
├── scapy
├── scrypt
├── scudo
├── seccomp-tests
├── selinux
├── setupcompat
├── setupdesign
├── sfntly
├── shaderc
├── shflags
├── skia
├── skqp
├── sl4a
├── slf4j
├── smali
├── snakeyaml
├── sonic
├── sonivox
├── speex
├── sqlite
├── squashfs-tools
├── strace
├── stressapptest
├── subsampling-scale-image-view
├── swiftshader
├── tagsoup
├── tcpdump
├── tensorflow
├── testng
├── tinyalsa
├── tinycompress
├── tinyxml
├── tinyxml2
├── toolchain-utils
├── toybox
├── tremolo
├── turbine
├── u-boot
├── ukey2
├── unicode
├── universal-tween-engine
├── v4l2_codec2
├── v8
├── vboot_reference
├── virglrenderer
├── vixl
├── vogar
├── volley
├── vulkan-headers
├── vulkan-validation-layers
├── walt
├── wayland
├── wayland-protocols
├── webp
├── webrtc
├── wpa_supplicant_8
├── wycheproof
├── xmp_toolkit
├── XNNPACK
├── xz-embedded
├── xz-java
├── yapf
├── zlib
├── zopfli
└── zxing
庫
1. aac-fdk-aac庫解碼aac
用於Android的全稱Fraunhofer FDK AAC編解碼器庫,多媒體相關,fdk-aac庫
2. adeb-Ubuntu的shell環境
為Android設備提供Ubuntu那樣的shell環境,可以運行python,apt-get安裝軟件等等
大概原理就是,它會下載一個img,作為它的rootfs,里面包含了Ubuntu運行的所需的東西
2.1 adeb的安裝和使用
1. 在Ubuntu電腦上下載adeb代碼
https://github.com/joelagnel/adeb.git
sudo apt-get install qemu-user-static debootstrap
cd adeb
sudo ln -s $(pwd)/adeb /usr/bin/adeb
// 用來下載包的
export ADEB_REPO_URL="github.com/joelagnel/adeb/"
git checkout 0.99g 這個tag的代碼有--kernelsrc
2. 使用adeb
adeb prepare --full --kernelsrc ../linux-kernel/linux-5.4/
第一次下載完包之后,就可以從/tmp目錄下找到androdeb-fs.tgz文件
然后把androdeb-fs.tgz文件拷貝到fs_build/androdeb-fs.tgz目錄下
然后下次執行命令:
adeb prepare --kernelsrc ../build/ --archive fs_build/androdeb-fs.tgz
adeb shell
就可以進行apt-get install python3等等操作了,還是換apt-get的安裝源
modprobe命令 可以安裝kmod
3. adhd-播放音樂的
用於監視A / V設備事件的守護程序,該目錄下有個cras,為ChromeOS Audio Server,用來播放音樂的
4. android-clat-ipv4轉ipv6進行傳輸的
用NAT64/DNS64支持ipv4轉ipv6,ipv4包 -> clat進程客戶端 -> Nat 4->6變為ipv6包 -> 經ipv6網絡 -> Nat 6->4 -> plat server轉為ipv4 -> ipv4服務器
5. androidplot-畫表格的
Android中用來畫表格的庫
6. angle-openGL ES轉Vulkan,桌面級opengl,direct3D等
Almost Native Graphics Layer Engine,幾乎全部的本地圖形層引擎。支持openGL ES轉Vulkan,桌面級opengl,direct3D等
7. ant-glob-ant庫中用來匹配路徑glob通配符的庫,ant是用來打包和編譯java的工具
glob模式,就是通配符,如*.java等就表示glob模式
8. antlr-計算機語言的解析
用來解析計算機語言的工具
9. apache-commons-bcel-解析java類文件,java文件變為.class文件
Byte Code Engineering Library為用戶提供一種方便的方式來分析,創建和操作(二進制)Java類文件(以.class結尾的文件)
例如javac命令,可以將java文件,生成.class文件,其中就是用到了bcel庫中的ClassParser類
10. apache-commons-compress-tar,zip,cpio,bzip2,7zip格式的壓縮包解壓縮,java庫
tar,zip,cpio,bzip2格式的壓縮包解壓縮,以及對壓縮包的加密工作
11. apache-commons-math-數學相關的java庫,有矩陣,統計等
數學相關的java庫,有矩陣,統計等
12. apache-harmony-java SDK實現,只有測試代碼
java SDK實現,只有測試代碼
13. apache-http-關於http的java庫,有android.net.http的實現
關於http的java庫,有android.net.http的實現
14. apache-xml-解析xml的java庫,源碼中比較少引用到
解析xml的java庫,源碼中比較少引用到
15. arm-neon-tests-arm的neon指令的測試,並行加速矩陣運算
NEON是一種SIMD(Single Instruction Multiple Data)指令,也就是說,NEON可以把若干源(source)操作數(operand)打包放到一個源寄存器中,對他們執行相同的操作,產生若干目的(dest)操作數,這種方式也叫向量化(vectorization)。
簡單來說,就是:NEON指令優化的精髓就在於同時在不同通道內進行並行運算。通常可用於圖像等矩陣數據的循環優化。
加法:4個數字並行運算
add: vaddq_f32 or vaddq_f64
float32x4_t v1 = { 1.0, 2.0, 3.0, 4.0 }, v2 = { 1.0, 1.0, 1.0, 1.0 };
float32x4_t sum = vaddq_f32(v1, v2);
// => sum = { 2.0, 3.0, 4.0, 5.0 }
乘法:
multiply: vmulq_f32 or vmulq_f64
float32x4_t v1 = { 1.0, 2.0, 3.0, 4.0 }, v2 = { 1.0, 1.0, 1.0, 1.0 };
float32x4_t prod = vmulq_f32(v1, v2);
// => prod = { 1.0, 2.0, 3.0, 4.0 }
16. arm-optimized-routines-arm優化例子,有math和string庫的優化
arm優化例子,有math和string庫的優化,最新的還有網絡庫的優化
17. arm-trusted-firmware-安全啟動相關
安全啟動相關
18. autotest-linux自動化測試框架
linux自動化測試框架
19. avb-安卓驗證啟動
安卓驗證啟動
20. bc-linux計算器
linux計算器
21. bcc-linux內核trace工具,可以使用adeb工具來用
linux內核trace工具,可以使用adeb工具來用
22. blktrace-追蹤塊設備調用的工具
追蹤塊設備調用的工具
23. boringssl-https加密庫,從openssl分出來的
https加密庫,從openssl分出來的
24. bouncycastle-提供了很多哈希算法和加密算法的第三方庫
提供了很多哈希算法和加密算法的第三方庫
25. brotli-Google推出的無損壓縮算法,比gzip更快更小
Google推出的無損壓縮算法,比gzip更快更小
26. bsdiff-用來生成差分包以及APK的增量更新
用來生成ota差分包以及APK的增量更新
https://blog.csdn.net/lmj623565791/article/details/52761658
1. 用戶手機上提取當前安裝應用的apk
2. 如何利用old.apk和new.apk生成增量文件,生成增量文件,./bsdiff old.apk new.apk old-to-new.patch
3. 增加文件與1.中的old.apk合並,然后安裝,合並,./bspatch old.apk new2.apk old-to-new.patch
27. bzip2-.tar.bz2工具,只壓縮不歸檔
.tar.bz2工具,只壓縮不歸檔
tar –cjf jpg.tar.bz2 *.jpg // 將目錄里所有jpg文件打包成 jpg.tar 后,並且將其用 bzip2 壓縮,生成一個 bzip2 壓縮過的包,命名為jpg.tar.bz2
tar -xjvf file.tar.bz2 // 解壓 tar.bz2
28. caliper-Google開發的性能測試工具
Google開發的性能測試工具
libcore/benchmarks/src/benchmarks和./frameworks/base/tests/benchmarks/Android.bp有用到這個庫
29. capstone-反匯編框架
反匯編框架
1. 深入了解ARM架構的反匯編器 https://zhuanlan.zhihu.com/p/144943960
objdump也是反匯編工具,將binary轉成匯編的形式,就是不太准
用編譯工具 gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump -d sdcard
30. catch2-輕量級c++單元測試框架
輕量級c++單元測試框架
使用上要比google test更簡單 https://blog.csdn.net/wanywhn/article/details/83655406
31. cblas-矩陣運算庫
矩陣運算庫
32. cbor-java-基於json的簡明二進制對象展現
基於json的簡明二進制對象展現
物聯網領域的JSON格式——CBOR,CBOR是專門為受限制物聯網終端設計的數據交換格式,該格式輕量間接,可以簡單理解為二進制形式JSON格式。CBOR格式可以與COAP協議組合使用,猶如HTTP+JSON;另外,CBOR也是COSE的基礎。
參考:物聯網專用數據交換格式CBOR https://www.jianshu.com/p/76adec5e61f8
33. chromium-libpac-瀏覽器代理自動配置
瀏覽器代理自動配置,配置http,https和ftp流量是直接走,還是走代理服務器
34. chromium-trace-Android systrace性能分析工具
Android systrace性能分析工具
使用方法:參考https://developer.android.com/topic/performance/tracing/command-line
該命令在android-sdk/platform-tools/systrace/中,需要安裝python
python systrace.py -o mynewtrace.html sched freq idle am wm gfx view binder_driver hal dalvik camera input res
python systrace.py --list-categories 列出支持的策略
也可以使用android-studio中的monitor.bat工具來抓systrace
將perfetto格式的文件,轉為systrace格式的:
python systrace.py --from-file=trace
轉換的過程中,會有錯誤:這是因為如果不是adb形式的,它是沒有開頭和結尾的,所以不需要辨認了,直接把讀到的data傳進去就好了
data_start = re.search(TRACE_START_REGEXP, result).end(0)
AttributeError: 'NoneType' object has no attribute 'end'
def _read_trace_data(self):
with open(self._filename, 'rb') as f:
result = f.read()
try:
data_start = re.search(TRACE_START_REGEXP, result).end(0)
data = re.sub(ADB_IGNORE_REGEXP, '', result[data_start:])
except:
data = result
return self._preprocess_data(data)
35. chromium-webview-webview瀏覽器apk
webview瀏覽器apk,這個倉庫只剩下apk了。源碼在chromium項目中:https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview
使用webview的情況:https://developer.android.com/guide/webapps
盡管 WebView 對象增強了對界面的控制,但也有一些替代方法可以提供類似的功能,並且具有諸多優勢:它們需要進行的配置更少、加載和執行速度可以更快、提供更強大的隱私保護並能訪問瀏覽器的 Cookie。
如果您的應用出現以下情況,請考慮使用 WebView 的這些替代方法:
1. 如果您希望將用戶引導至移動網站,請構建漸進式 Web 應用 (PWA)。
2. 如果您希望顯示第三方網頁內容,請向已安裝的網絡瀏覽器發送 Intent。
3. 如果您想避免離開應用來打開瀏覽器,或者想要自定義瀏覽器界面,請使用 Chrome 自定義標簽頁。
36. clang-LLVM的編譯前端,支持代碼靜態檢查
LLVM的編譯前端和gcc相對
https://blog.csdn.net/zhouzhaoxiong1227/article/details/52166942 LLVM和Clang背后的故事
https://blog.csdn.net/xhhjin/article/details/81164076 簡述 LLVM 與 Clang 及其關系
https://www.zhihu.com/column/clang 深入研究Clang
https://getting-started-with-llvm-core-libraries-zh-cn.readthedocs.io/zh_CN/latest/ LLVM編譯器實戰教程
Clang extras:
(1)Clang Check:語法檢查
(2)Clang Format:格式化任意的c++代碼,使它符合Google代碼風格
(3)Clang Modernizer:代碼重構工具
(4)Clang Tidy:這是一個剝絨機工具,它檢查常見的編程錯誤,這些錯誤違背了LLVM或者Google的編碼標准。
37. cldr-通用語言環境數據倉庫,Common Locale Data Repository
通用語言環境數據倉庫,Common Locale Data Repository
官網:http://cldr.unicode.org/
38. cn-cbor-基於json的簡明二進制對象展現,c語言實現
基於json的簡明二進制對象展現,c語言實現
hardware/interfaces/confirmationui/1.0/vts/functional/Android.bp 有使用到
39. compiler-rt-(runtime)項目為硬件不支持的低級功能提供目標特定的支持。
Compiler-RT(runtime)項目為硬件不支持的低級功能提供目標特定的支持。舉例來說,32位目標通常缺少64位除法指令。Compiler-RT提供一個目標特定的優化的函數,它用32位指令實現64位除法,從而解決這個問題。它是libgcc的LLVM等價物,提供相同的功能。而且,它運行時支持地址和內存清潔(sanitizer)工具。
40. conscrypt-加密安全相關的庫
https://blog.csdn.net/Innost/article/details/44081147 深入理解Android之Java Security第一部分
https://blog.csdn.net/Innost/article/details/44199503 深入理解Android之Java Security第二部分(Final)
JCE相關的信息:有加解密,密鑰交換,消息摘要(Message Digest,比如MD5等),密鑰管理等。
libcore/ojluni/src/main/java/java/security/Security.java注冊了com.android.org.conscrypt.OpenSSLProvider(java框架)
com.android.org.conscrypt.OpenSSLProvider在conscrypt/repackaged/common/src/main/java/com/android/org/conscrypt/OpenSSLProvider.java文件中實現了具體的算法(android中的具體實現)
應用 -> java.security包 -> com.android.org.conscrypt.OpenSSLProvider中的具體實現(MD5,SHA-1,SHA-256等等算法的實現)
key -> base64編碼 -> 傳出去
證書:android/system/ca-certificates把一些頂級CA證書集成到系統中。目前通用格式為X.509格式。
keystore:存儲key的一個文件
摘要:MD5計算
HMAC:加上密鑰算摘要,就可以認證了
簽名:證明摘要是正確的
JSSE相關的信息:Java平台對SSL/TLS的某種實現
SSL/TLS:TCP 之上的一個安全協議
服務器和客戶端之間交換證書和key等
硬件支持keymaster HAL的作用:https://developer.android.com/training/articles/keystore
運行 Android 9(API 級別 28)或更高版本的受支持設備可擁有 StrongBox Keymaster,它是位於硬件安全模塊中的 Keymaster HAL 的一種實現。該模塊包含以下組成部分:
1. 自己的 CPU。
2. 安全存儲空間。
3. 真實隨機數生成器。
4. 可抵御軟件包篡改和未經授權旁加載應用的附加機制。
檢查存儲在 StrongBox Keymaster 中的密鑰時,系統會通過可信執行環境 (TEE) 證實密鑰的完整性。
為支持低能耗的 StrongBox 實現,為一部分算法和密鑰大小提供了支持:
1. RSA 2048
2. AES 128 和 256
3. ECDSA P-256
4. HMAC-SHA256(支持 8-64 字節密鑰大小,含首末值)
5. Triple DES 168
使用 KeyStore 類生成或導入密鑰時,您需要通過將 true 傳遞給 setIsStrongBoxBacked() 方法,指示在 StrongBox Keymaster 中存儲密鑰的偏好。
41. cpu_features-跨平台的用來檢索CPU功能的c庫-解析/proc/cpuinfo文件得到
跨平台的用來檢索CPU功能的c庫-解析/proc/cpuinfo文件得到
用法:代碼中判斷CPU是否支持這個功能,然后做相應的優化操作
#include "cpuinfo_x86.h"
static const X86Features features = GetX86Info().features;
void Compute(void) {
if (features.aes && features.sse4_2) {
// Run optimized code.
} else {
// Run standard code.
}
}
42. cpuinfo-有關/proc/cpuinfo的信息
有關/proc/cpuinfo的信息
判斷主機CPU是否支持NEON功能
cpuinfo_initialize();
if (cpuinfo_has_arm_neon()) {
neon_implementation(arguments);
}
43. crcalc-構造實數計算器-用級數來計算實數
構造實數計算器-用級數來計算實數,系統自帶的計算器會用到這個庫
用泰勒級數的方式,來計算cos和sin這些函數,以得到精確的值
參考
1. 【CPU】ARM底層匯編之neon指令集優化(附實例)
https://blog.csdn.net/qq_38410730/article/details/103569527
2. NEON Intrinsics Quick Guide
https://gist.github.com/csarron/3191b401ec545f78022881f1805cae9a
3. 加密與安全
https://www.liaoxuefeng.com/wiki/1252599548343744/1255943717668160