Xiaomi 14、Snapdragon 8 Gen 3で32ビットアプリをサポート 8
ストーリー by nagazou
サポート 部門より
サポート 部門より
headless 曰く、
Qualcomm Snapdragon 8 Gen 3 は 32 ビットアプリをネイティブサポートしないが、この SoC を採用した Xiaomi 14 シリーズでは 32 ビットアプリの実行が可能となっているそうだ (知乎の記事、 Android Police の記事、 Android Authority の記事)。
アプリ開発者 mlgmxyysd 氏の調査によると、32 ビットアプリの実行は Amanieu Systems のバイナリ変換ソフトウェア Tango を統合することで実現しているという。mlgmxyysd 氏は Xiaomi 14 Pro を用い、円周率を計算するアプリの 32 ビット版と 64 ビット版で 1 億桁と 21 億 (2,147,483,647) 桁の計算時間を比較している。32 ビット版は 64 ビット版の倍以上の時間を要しているが、32 ビットアプリをネイティブサポートする Xiaomi 12S Pro でも 64 ビット版との速度差は大きく、Tango によるバイナリ変換の速度は良好のようだ。
円周率を計算するアプリ (スコア:0)
スーパーπのことかー! (きっと違う)
近年のAndroidって、ソースファイルをスマホ側でコンパイルしてインストールしていると聞いているが (スコア:0)
32bit実行ファイル生成コンパイラが、Androidに実装されてるの?
間違いなら、指摘して頂けると幸いです。
Re: (スコア:0)
javaとかのJITのことかいな
アプリごとに何で書かれているか判別できるのかな?
root取っていないと他のアプリ情報に干渉はできないかも
# androidよくしらない
Re: (スコア:0)
Dexバイトコードは32ビット用と64ビット用があるの? なければ64ビット端末が32ビット実行環境を用意するというコストを掛けてまでわざわざ32ビットネイティブコードを生成する理由はなんだろう。,NETでいうP/Invokeみたいな仕組みの都合で32ビット用にしかコンパイルできないことがあったりするのかな?
Re: (スコア:0)
古いAndroid端末対策では?
もしくは、更新されない古いゲームとかアプリ用。
Re: (スコア:0)
ソースファイルが何を指すかだけど、ソースコードをコンパイルしているわけではなく、Dexバイトコードをコンパイルしている。
https://source.android.google.cn/docs/core/runtime?hl=ja [google.cn]
インストール時に、ART はデバイス上の dex2oat ツールを使用してアプリをコンパイルします。このユーティリティは、DEX ファイルを入力として受け取り、ターゲット デバイスで実行可能なコンパイル済みアプリを生成します。すべての有効な DEX ファイルを簡単にコンパイルできます。
Re: (スコア:0)
あまり環境に優しくない仕組みだと思う。
CPUは数あれど、本当にエッジのデバイス毎にコンパイルさせることはないだろう。
最初の一回はしょうがないかもしれないが、同じSoC使ってる人向けに、PlayStoreのアプリ配布サーバーにキャッシュできるようにしておけばいいものを。
Re: (スコア:0)
全く同じ環境もあるだろうけど、SoCが一緒でも入ってるファームウェアのバージョンだったり、パッチレベルだったりは違うからね。
インストール時以外にも、ファーム更新とかあると、再コンパイルしてるわけだけど、ストア側に保持する方式だと、ファーム更新があるとストアに繋いで同じ構成のものをダウンロードしなおすなんて事も必要になる。
どっちが環境負荷かかるのか、わからんのじゃないかなぁ。ART無効化して普通のJITだけにしてる端末もあるわけだしね。