- Ubuntu 20.04 LTS amd64
- Google Android SDK, NDK, AVD
- Android 1.0~2.3.3 (API 1~10) armeabi(armeabi-v5te?)
- Android 1.1, 1.2のエミュはSDK 1.0 r2とSDK 1.1 r1内にある
tools/emulatorを実行しているゾ - 1.5以降のエミュはIntellij IDEA/Android StudioのAVD Managerからダウンロード&追加したシステムイメージ、AVDを
Android SDK r24.4.1の
emulatorから実行しているゾ(新しいemulatorでは動かないゾ)
- Android 1.1, 1.2のエミュはSDK 1.0 r2とSDK 1.1 r1内にある
- Android NDK r6, r16bをダウンロード&展開
- NDKへのパスの環境変数をセットしておく
# TODO: Change NDK paths export ANDROID_NDK_R16B="$HOME/Android/android-ndk-r16b" export ANDROID_NDK_R6="$HOME/Android/android-ndk-r6"
- cpu_featuresをクローン&cd
git clone https://github.com/google/cpu_features.git --depth=1 cd cpu_features - cpu_featuresのビルド
cmake -S. -Bbuild \ -D{BUILD_TESTING=0,CMAKE_BUILD_TYPE=Release,CMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_R16B}/build/cmake/android.toolchain.cmake"} \ -D{ANDROID_ABI=armeabi,ANDROID_PLATFORM=android-1,ANDROID_PIE=0} cmake --build build --config Release -j showinfo.cのビルド (build.sh参照)-
adb push showinfo-armv5 /data/local/tmp adb shell /data/local/tmp/showinfo-armv5
- なぜか一部デバイスでセグフォったり中止(Aborted)になったりフリーズしたり
ArmInfo.revisionが0になったりするゾ
showinfo.c内最初のprintf,fflushを消したりすると実行結果が変わるゾ
Android 1.5(API 3)や2.0(API 5)、2.3.3(API 10)らへんでバグりやすい?
Apache License 2.0 2022 NNN1590
このGistでは一部cpu_featuresのコードを使用しているゾ
The cpu_features library is licensed under the terms of the Apache license. See LICENSE for more information.
少し追ってみた感じ
src/impl_arm_linux_or_android.cのArmInfo GetArmInfo(void)のFillProcCpuInfoData(&info, &proc_cpu_info_data);らへんでエラーが発生するみたいっすね:https://github.com/google/cpu_features/blob/0bf4ea05294061560a0f84fa39af4db66b91b943/src/impl_arm_linux_or_android.c#L198
こ↑こ↓(GetArmInfo内)でもprintfした文字数かなんかによって処理変わりますね…