タブレットに組み込みソリューションを開発(実際には移植)するためのアーキテクチャ上の決定を下す必要があります。
選択はUbuntuまたはAndroidに依存するため、決定に役立つ具体的な質問がいくつかあります。
Androidでは、Pythonを使用してDalvikの外部でアプリケーションを開発することは可能ですか?はいの場合、Android SDKによって提供されるAPIなしで、この方法でハードウェアにアクセスできますか?
Androidでは、プロセスを制御できますか? 'core_affinity
プロセスを単一のコアにバインドするには?また、isolcpus
を使用して、他のプロセスをそのコアから分離し、プロセス専用のコアにすることはできますか?これは通常のLinuxで可能ですが、Androidで実行できるかどうかはわかりません。
Ubuntuでは、Ubuntu SDKの外部でハードウェアをどの程度制御できますか?
アプリケーションにはユーザーインターフェイスがあるという命題から始めます。それをどのように見せて動作させたいですか? 4つの選択肢があります。
読むべきものはたくさんあります(例: https://stackoverflow.com/questions/101754/is-there-any-way-to-run-python-on-Android )。必要なUIの種類を決定するまで、それは重要ではありません。ネイティブが必要な場合は、はJavaを作成します。
あなたの質問に答えて:
NDKに関しては、十分な機能を備えたC++開発環境を提供していると言えます。ほとんど(すべてではありません)の標準C++ライブラリ機能に加えて、AndroidプロセスAPI(アクティビティを完全にC++で記述できる)にフックする一連のAPI、およびJNIが提供されます。能力。
Javaからアクセスすることを目的としたデバイスAPI(加速度計やGPSなど)があるため、JNIを介してアクセスします。 C++から直接デバイスにアクセスできる場合もありますが、(メーカー間での)移植性とより高いレベルの機能が失われる傾向があると思います。
その下には、デバイスドライバー、HAL、Linuxカーネル、その他の興味深いものがあります。それがあなたがプレイしたい場所であるならば、読むべきことがたくさんあります: http://s.Android.com/devices/index.html 。
問題のデバイスが従来のプラットフォーム(x86、ARM ...)のカスタムまたは汎用タブレットである場合は、そこから正確に何が必要かを自問してください。本当にUbuntuディストリビューション全体が必要ですか、それともタブレットをアプリケーションで直接起動しますか?その場合、私はあなたのハードウェアとQTインターフェースを処理する基本的な組み込みLinuxディストリビューションを選びます。デバイスが実行中の場合Android)Android OS用の適切なツールキットとAPIを使用する必要があります。本格的なUbuntuを使用して、開発することもできます。 Webアプリ。その場合、必要なのはWebブラウザーだけで、事実上すべてのタブレット、電話、またはPCで実行できます。