Android ART と、アプリのインストール プロセスで作成される「ネイティブ」コード ファイル .oat/.elf をいじっているときに、奇妙なことに気付きました。
私の理解では、デバイスが ART (Android >= 5.0) を使用している場合、アプリはコンパイル済みの oat ファイル (/data/dalvik-cache/arm64/) で開始されます。
そのため、アプリの使用済み fd をチェックして、そこにファイルが見つからなかったときにちょっと驚きました。通常の apk (/data/app//base.apk) のみが表示されます。
「ls -l /proc/PID/fd」のこの出力を確認してください
だから私はそれがそこにリストされていないだけかもしれないと思った. そこで、別の classes.dex を dex2oat ツールでコンパイルして、そのアプリの oat ファイルを自分で交換しました。
したがって、ファイルを変更した後でも、アプリは奇妙なメッセージやエラーなしで正常に起動します (logcat でも)。
これについての説明は何ですか?ART でアプリを起動するときに Android が行う詳細なプロセスは何ですか?
誰かが私のためにそれを片付けてくれることを願っています。どうもありがとう。