AndroidアプリケーションをLinuxに移植しようとしましたが(笑わないでください)、問題が発生しました。app_process
実行権限を追加した後、Android実行可能ファイル()を実行しようとするとうまくいきますが、./app_process
存在しないことがわかりますcat ./app_process
。
また、My File Manager(Pantheon Files)の実行可能ファイルに共有ライブラリアイコンが表示されます。
Linuxでこれを実行する方法はありますか?
答え1
AndroidとLinuxは異なるオペレーティングシステムです。。ある場所から実行可能ファイルをインポートして別の場所で実行することはできません。
最初の障害物はカーネルです。 AndroidとLinuxは同じカーネルに基づいていますが、いくつかの異なる機能があります。特にAndroidは次の機能を提供します。粘着剤、バージョン3.19以降、主流のカーネル(Linuxディストリビューション)にのみ存在します。純粋なネイティブコードアプリケーションはバインダーを使用しないかもしれませんが、ほとんどのJavaアプリケーションはバインダーを使用します。
2番目の障害物は動的ライブラリです。動的にリンクされた実行可能ファイルがある場合は、動的リンカーを呼び出します。 AndroidとLinuxには異なるダイナミックリンカーがあります。動的リンカーがない場合実行ファイル自体が存在しないのと同じエラーが発生します。。
動的リンカーと必要な構成ファイル、ネイティブライブラリをコピーすると、ほとんどのネイティブプログラムを実行できます。ほとんどをコピーし、/system
コピーを見つける必要があります/system
。
Javaアプリケーションを実行するにはもっと複雑です。 Javaランタイム環境(Dalvik / ART)が必要で、ほとんどのアプリケーションにはいくつかのAndroidデーモンも必要です(一部のネイティブコードアプリケーションにはこれらのデーモンが必要です)。
その結果、両方のシステムが単一のカーネルで共存できますが、これは十分に新しいカーネルまたはAndroidカーネルである必要があります(AndroidカーネルはほとんどのLinuxアプリケーションを実行できます)。両方のオペレーティングシステムをインストールする必要があります。- 他のアプリケーションから1つのアプリケーションを実行することはできません。
Linuxに既製のAndroidインストーラがあるかどうかわかりません。しかし、反対のインストーラもあります。特にAndroidのLinux。
目標がLinuxシステムでAndroidアプリケーションを実行することであれば、これまでの最も簡単な方法はエミュレータで実行することです。Android開発ツール。