Androidシステムが動的にコンパイルされたプログラムをどのように実行するか


Androidシステムの下部にはlinuxのカーネルが使用されていますが、ファイルシステムではlinuxとは異なります.Googleが提供するADBツールを使用してandroidシステムのlinuxコマンド端末にアクセスできます.しかし、arm-linux-gccなどのクロスコンパイラを介してPC上で動的にコンパイルされたアプリケーションを実行することはできません.例えば、次のコマンドがあります.
arm-linux-gcc mc.c -o mc

次にadb pushで実行可能プログラムをandroidシステム/data/localにコピーし、権限を変更します.
adb shell chmod 777 /data/local/mc

最後に/data/localディレクトリにアクセスしてアプリケーションを実行します.
./mc

次のように提示されます.
1|root@android:/data/local # ./mc /system/bin/sh: ./mc: No such file or directory
これは、arm-linuxシステムであれば、必要なリンクライブラリが見つからないことを示しています.これはandroidシステムにlinuxシステム内のこれらの依存ライブラリが欠けていることを示しています.もちろん-staticオプションの静的コンパイルを加えると問題を解決できますが、静的にコンパイルされたファイルは動的にコンパイルされたファイルより数十倍大きくなり、簡単なmakefileは500 KB以上になる可能性があります.長い間見ると、これはお得ではありません.これらのライブラリはlinuxのファイルシステムから見つけることができます.方法は以下の通りです:まずlinuxソースコードの中でファイルシステムの圧縮パッケージを見つけます:file_system.tar.gz. 解凍
tar xzvf file_system.tar.gz

次にlibのすべてのコンテンツをandroidの/libディレクトリにコピーします.
adb push lib /lib

このとき、linuxのライブラリファイルはandroidで見つけることができます.このときandroidシステムの/data/localディレクトリに戻り、静的コンパイルを実行できるファイルを再実行します.
また、linuxシステムの場合、環境変数を構成するか、mc実行可能ファイルを/binディレクトリの下に配置することで、任意のパスでこのコマンドを実行できます.ではandroidシステムで似たような操作はありますか?もちろんいいです.実行可能ファイルmcを/system/binディレクトリの下に置けばいいのですが、便利ではないでしょうか.
皆さん、もし何か質問があれば、以下にメッセージを残して、みんなで検討します~~