2

これらはデフォルトでは Android 4.2.1 にインストールされません。そのため、 GNU などのソースをクロスコンパイルしgrepたりfind、Android で実行したりすることはできますか? (できれば、デバイスをルートしたり、 PLAYからアプリをインストールしたりする必要はありません。たとえば、busybox です。) これを防ぐ依存関係が不足していませんか? 私はUbuntu 10.0.04で開発しています

4

2 に答える 2

0

grep私はビルドやを試したことがないので、これは完全な答えではありませんfind。ただし、一般的に、Android用のGNUユーティリティを構築することはかなり可能です。これを行うための最良のオプションは次のとおりです。

  1. Androidネイティブ開発キットをダウンロードする
  2. NDKで参照して、Androidスタンドアロンツールチェーンを構築しますdocs/STANDALONE-TOOLCHAIN.html
  3. ./configure && make通常のメカニズムを使用して、関連するGNUユーティリティを構築するだけです。

次に、結果のバイナリをAndroidデバイスにコピーする必要があります。これは、を使用して実行できますadb push。多くの場合、実行不可とマークされ/data/ているため、それらをどこかに配置するように手配する必要があります。/mnt/sdcard

依存関係がありません

実際のビルド中に見つかる主な問題は、Androidが標準のGNU libc(glibc)を使用していないことです。代わりに、Bionicと呼ばれる独自のものを使用します。これは、特定の重要なAPI(たとえば、ワイド文字列のサポート)を見逃します。

一部のGNUユーティリティでは、これで問題がなく、最小限のソースコード変更でコンパイルできることがわかりました。

ただし、問題が発生した場合は、これらのユーティリティの他のバージョンを使用することをお勧めします。これらのユーティリティは、通常、基になるlibcに関してより柔軟性を持たせるように設計されています。具体的には、使用に関する以前のアドバイスbusyboxは優れています。Androidマーケットからインストールしたくない場合は、ここでソースコードを見つけることができます。

于 2013-02-06T14:44:02.320 に答える
0

変。私はそれらを持っています/system/xbin/*。たぶん、ビジーボックスでもっと運がいいでしょう。busybox find busybox grepAndroid 4.2 に busybox がデフォルトでインストールされているかどうかはわかりませんが、かなり一般的なバイナリです。

于 2013-02-05T10:42:18.730 に答える