このガイドでは、システム アプリケーションとユーザー アプリケーションの違いと、Xamarin.Android アプリケーションをシステム アプリケーションとしてインストールする方法について説明します。 このガイドは、カスタム Android ROM イメージの作成者を対象としています。 カスタム ROM を作成する方法については説明しません。
システム アプリケーション
カスタム Android ROM イメージの作成者または Android デバイスの製造元の場合、ROM またはデバイスを配布するときに Xamarin.Android アプリケーションをシステム アプリケーションとして含めたい場合があります。 システム アプリケーションとは、デバイスの機能にとって重要であると考えられるアプリケーション、またはカスタム ROM 作成者が常に使用したい機能を提供するアプリケーションです。
システム アプリケーションは、フォルダー /system/app/ (ファイル システム上で読み取り専用ディレクトリ) にインストールされます。ユーザーがルート アクセス権を持っている場合を除き、ユーザーがシステム アプリケーションを削除または移動することはできません。 対照的に、ユーザーがインストールしたアプリケーション (通常は Google Play を使用するかアプリのサイドロードによってインストールします) は、ユーザー アプリケーションと呼ばれます。 ユーザー アプリケーションはユーザーが削除できます。また多くの場合、デバイスの別の場所 (外部ストレージなど) に移動することができます。
システム アプリケーションはユーザー アプリケーションとまったく同じように動作しますが、主に次のような例外があります。
システム アプリケーションは、通常のユーザー アプリケーションと同様にアップグレード可能です。 ただし、アプリケーションのコピーは常に /system/app/ に存在するので、アプリケーションを元のバージョンにロールバックすることは常に可能です。
システム アプリケーションには、ユーザー アプリケーションでは利用できないシステムのみのアクセス許可が付与されている場合があります。 システムのみのアクセス許可の例として、
BLUETOOTH_PRIVILEGED
があります。アプリケーションはこのアクセス許可を使用し、ユーザーの介入なしで Bluetooth デバイスとのペアリングを実行できます。
Xamarin.Android アプリケーションをシステム アプリケーションとして配布することができます。 カスタム ROM に APK が提供されるだけでなく、APK から ROM イメージのファイルシステムに手動でコピーする必要がある libmonodroid.so と libmonosgen-2.0.so という 2 つの共有ライブラリがあります。 このガイドでは、関連する手順について説明します。
制限
このガイドは、カスタム Android ROM イメージの作成者を対象としています。 カスタム ROM を作成する方法については説明しません。
このガイドは、Xamarin.Android のリリース APK をパッケージ化する方法と Android アプリケーションの CPU アーキテクチャを理解していることを前提としています。
システム アプリケーションとして Xamarin.Android アプリをインストールする
次の手順では、Xamarin.Android アプリケーションをシステム アプリケーションとしてインストールする方法について説明します。
Xamarin.Android アプリケーションのリリース APK をパッケージ化する – 詳細については、「アプリケーションの発行」ガイドを参照してください。
共有ライブラリを APK から抽出する – ZIP ユーティリティ プログラムを使用して APK ファイルを開き、/lib/ フォルダーの内容を確認します。 このフォルダーには、アプリケーションがサポートするアプリケーション バイナリ インターフェイス (ABI) のサブディレクトリがあります。このフォルダー内には、その ABI でアプリケーションに必要なすべての共有ライブラリがあります。
前のスクリーン ショットでは、アプリケーションに必要な 2 つの .so ファイルを保持するサポート対象の ABI は 1 つのみです (armeabi-v7a)。 抽出する必要があるのは、デバイスまたはデバイス ROM のターゲット アーキテクチャに適した ABI ファイルのみである点に注意してください。たとえば、x86 フォルダーの .so ファイルを armeabi-v7a デバイスまたは ROM にコピーしないでください。
.so ファイルを /system/lib にコピーする – 前の手順で APK から抽出した .so ファイルをカスタム ROM 上の /system/lib/ フォルダーにコピーします。
APK ファイルを /system/app にコピーする – 最後の手順は、APK ファイルを ROM 上の /system/app フォルダーにコピーすることです。
まとめ
このガイドでは、システム アプリケーションとユーザー アプリケーション の違いと、Xamarin.Android アプリケーションをシステム アプリケーションとしてインストールする方法について説明しました。