この記事は主に、仮想マシン Ubuntu システムをコンパイルすることによって生成された実行可能ファイル canitf がXunwei の iMX6開発ボードでどのように実行されるかを記録することを目的としています。関連する操作の一部は比較的固定されているため、将来の使用のために参照手順に整理できます。 。
1. 実行ファイルの生成
まず、Ubuntu システムの対応するディレクトリのターミナルで次のコマンドを実行して、NDK をコンパイルし、実行可能ファイルを生成します。
/home/yinlong/Music/sdkapp/android-ndk-r14b-linux-x86_64/android-ndk-r14b/ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk
すると、現在のディレクトリに生成された実行可能ファイルが見つかります。
2. ファイルを開発ボードに転送する
1. ファイルを手動で転送する
開発ボードを USB ケーブルでコンピュータに接続し、開発ボードのUSB 使用オプション(開発ボードのメイン画面をプルダウンすると表示されます) をファイル転送に設定します。
この時点で、コンピュータ上で開発ボードの記憶領域を見つけることができます。
内部ストレージ デバイスを開いて、下の図に示すようにストレージ構造にアクセスします。これは、開発ボードにあるSD カードの場所であることに注意してください。このとき、 Ubuntuで生成されたlibs ファイルをここでは、ダウンロードディレクトリに置くことを選択します。
( Ubuntu システムからファイルを直接ドラッグ アンド ドロップする場合、ファイルをこのフォルダーに置くことはできないことに注意してください。最初にファイルを仮想マシンからコンピューターにドラッグし、次にコンピューターからストレージにドラッグする必要があります。開発ボードの構造)
2. 開発ボードで libs ファイルを見つけて確認します。
上記の手順を実行すると、ファイルが開発ボードに保存されました。確認したい場合は、開発ボードを開いて設定を見つけ、設定内のストレージデバイスとUSBをクリックします。
次に、下部にある「参照」をクリックして内部ストレージ容量を入力します。
ファイルをDownload ディレクトリに保存したばかりであることを思い出してください。そのため、内部ストレージ領域の Download を開くと、前に配置したlibs フォルダーが表示されます。
これにより、以前の操作が正しかったことを確認することもできます。
3. adb シェルを使用して実行可能ファイルを実行します
このとき生成された実行ファイルはすでに開発ボード内にありますが、SDカードに置かれているため、開発ボードの設定によってはここにある実行ファイルを実行できないため、SDカードに転送する必要があります。開発ボードを別のストレージ ディレクトリで実行するには、adb シェル ツールを使用する必要があります。具体的な手順は次のとおりです。
1. adbシェルをセットアップする
コンピューターでコマンド プロンプトを開き、次のコマンドを実行し、root として adb シェルに入ります。
(注:この手順を正常に実行するには、開発ボードはroot 権限を取得する必要があります。root 権限の取得方法については、[Beijing Xunwei] iTOP-i.MX6 Development Board User Manual_v1.9: Android6.0.1の第 27 章、セクション 27.5 を参照してください。 -root権限を取得します)
(注: adb devices コマンドを実行すると、デバイスの不正なプロンプトが表示される可能性があります。この問題は解決しました。ブログ投稿を参照してください: Android デバイスの adb 接続後のデバイスの不正な表示の問題が正常に解決されました)
(注: adb root コマンドを実行すると、開発ボード デバイス上にウィンドウがポップアップする場合があります。これは、大まかに言うと… USB デバッグを許可するには[OK]をクリックすることを意味します)
adb devices
adb root
adb shell
上記のコマンドを実行すると、下図のようになります。root @...# は、開発ボードを root として操作することを意味し、後でファイルのアクセス許可などを変更する場合に便利です。
2. ファイルを他のディレクトリにコピーする
libs ファイルはまだ SD カードに保存されているため、コマンド ラインからそれを確認し、次のコマンドを実行してSD カードのダウンロードディレクトリに移動します。
cd /sdcard/download
ls コマンドを再度 実行すると、このディレクトリに先ほど配置したlibs フォルダーがあることがわかります。
このディレクトリでは実行可能ファイルを実行する方法がないため、次のコマンドを実行して別のディレクトリに転送します。ここでは/data/local/tmpディレクトリに配置しました。もちろん、他のディレクトリを選択することもできます。 / sdcard内のディレクトリを選択して保存してください。
cp -r libs /data/local/tmp
次に、ls コマンドにジャンプして実行すると、libs フォルダーがコピーされたことが明確にわかります。
cd /data/local/tmp
ls
3. ファイル権限を変更する
本当に実行したい実行ファイルは libs ディレクトリに置かれた実行ファイル canitf なので、その実行ファイルがあるディレクトリにジャンプします。
cd /data/local/tmp/libs/armeabi-v7a
ただし、直接実行すると、ファイルのアクセス許可がまだ読み取りおよび書き込みできない状態に設定されているため、ファイルを実行するアクセス許可がないことを意味する「アクセス許可が拒否されました」というメッセージが表示されます。
これには、ファイルのアクセス許可を変更する必要がありますが、この時点ではスーパー ユーザー root であるため、次のコマンドを直接実行して、ファイルを実行できるようにファイルのステータスを設定できます。
chmod 777 canitf
4. 実行可能ファイルを実行します
ファイルのアクセス許可を変更した後、コマンドを実行してファイルを正常に実行します。
./canitf