web-dev-qa-db-ja.com

専用システム向けタブレット開発

タブレットに組み込みソリューションを開発(実際には移植)するためのアーキテクチャ上の決定を下す必要があります。
選択はUbuntuまたはAndroidに依存するため、決定に役立つ具体的な質問がいくつかあります。

  • Androidでは、Pythonを使用してDalvikの外部でアプリケーションを開発することは可能ですか?はいの場合、Android SDKによって提供されるAPIなしで、この方法でハードウェアにアクセスできますか?

  • Androidでは、プロセスを制御できますか? 'core_affinityプロセスを単一のコアにバインドするには?また、isolcpusを使用して、他のプロセスをそのコアから分離し、プロセス専用のコアにすることはできますか?これは通常のLinuxで可能ですが、Androidで実行できるかどうかはわかりません。

  • Ubuntuでは、Ubuntu SDKの外部でハードウェアをどの程度制御できますか?

3
bosnjak

アプリケーションにはユーザーインターフェイスがあるという命題から始めます。それをどのように見せて動作させたいですか? 4つの選択肢があります。

  1. Androidネイティブ。 Javaを作成しますが、NDKを使用してC++で拡張できます。
  2. HTML5/Javascript。おそらくJavascriptを作成する予定ですが、サーバーまたはワームホールを使用して拡張できます。
  3. レンダラー。レンダリングサーフェスに独自のウィジェットを描画することになり、それらはネイティブではないため、好きな言語を書くことができます。
  4. 誰かのdevkit。最終的には上記のいずれかを実行します。 Xamarin、Qpython、QTなど。

読むべきものはたくさんあります(例: https://stackoverflow.com/questions/101754/is-there-any-way-to-run-python-on-Android )。必要なUIの種類を決定するまで、それは重要ではありません。ネイティブが必要な場合は、Javaを作成します。

あなたの質問に答えて:

  1. はい、基本的にNDKなどを介してコードを記述して実行できます。 UIには役立ちません。
  2. Dunnoですが、NDKにたどり着くと、ほとんどのことができます。
  3. UbuntuはAndroidではありません。それは他の人に任せます。

NDKに関しては、十分な機能を備えたC++開発環境を提供していると言えます。ほとんど(すべてではありません)の標準C++ライブラリ機能に加えて、AndroidプロセスAPI(アクティビティを完全にC++で記述できる)にフックする一連のAPI、およびJNIが提供されます。能力。

Javaからアクセスすることを目的としたデバイスAPI(加速度計やGPSなど)があるため、JNIを介してアクセスします。 C++から直接デバイスにアクセスできる場合もありますが、(メーカー間での)移植性とより高いレベルの機能が失われる傾向があると思います。

その下には、デバイスドライバー、HAL、Linuxカーネル、その他の興味深いものがあります。それがあなたがプレイしたい場所であるならば、読むべきことがたくさんあります: http://s.Android.com/devices/index.html

4
david.pfx

問題のデバイスが従来のプラットフォーム(x86、ARM ...)のカスタムまたは汎用タブレットである場合は、そこから正確に何が必要かを自問してください。本当にUbuntuディストリビューション全体が必要ですか、それともタブレットをアプリケーションで直接起動しますか?その場合、私はあなたのハードウェアとQTインターフェースを処理する基本的な組み込みLinuxディストリビューションを選びます。デバイスが実行中の場合Android)Android OS用の適切なツールキットとAPIを使用する必要があります。本格的なUbuntuを使用して、開発することもできます。 Webアプリ。その場合、必要なのはWebブラウザーだけで、事実上すべてのタブレット、電話、またはPCで実行できます。

0