モバイル環境での開発手法の選択
Androidタブレット(HarmonyOSやAndroid 12以降を含む)でプログラミング環境を構築する場合、大きく分けて2つのアプローチがあります。1つ目はTermuxのようなターミナルベースのエミュレーターを使用し、SSH接続やVimを利用する方法です。これは軽量ですが、GUIがないため習熟が必要です。
もう1つは、AidLuxを利用してAndroid上に完全なLinuxデスクトップ環境を構築する方法です。こちらはGUI操作が可能で、VS CodeなどのIDEを直感的に使用できるため、本記事ではAidLuxを用いた環境構築とPython開発の実践手順について解説します。
AidLuxのインストールと初期設定
アプリケーションの入手
AidLuxを導入するには、端末の公式アプリストア(Google Play StoreやHuawei AppGalleryなど)から「AidLux」を検索してインストールするのが最も確実です。公式ストアにない場合、AidLuxの公式WebサイトからAPKファイルを直接ダウンロードして sideload することも可能ですが、セキュリティ設定の変更が必要です。
システムの初期化と起動
インストール後、AidLuxを起動し、初回ログイン用のパスワードを設定します。初回起動時はLinuxファイルシステムの初期化処理(約2〜3分)が行われます。完了後、Linuxデスクトップ環境へのアクセスを促すダイアログが表示されますが、Android 12以降の環境では互換性の問題があるため、一旦「デスクトップを開かない」選択を推奨する場合があります。正常にデスクトップが起動しない場合は、アプリを再起動し、プロンプトに従って操作してください。
Android 12 / HarmonyOS 3でのプロセス管理と対策
Android 12およびHarmonyOS 3以降の環境では、OSがバックグラウンドプロセスの監視を強化しており、AidLuxのLinuxコンテナプロセスが強制終了される問題が発生する可能性があります。
これは、アプリが生成するフォークされた子プロセス(いわゆる「虚プロセス」)の合計数がデフォルトの制限値(通常は32)を超えた場合、あるいはCPUリソースを過度に消費した場合に、システムがプロセスをキルする仕様によるものです。
この現象を回避し、安定した動作を確保するためには、以下の設定が推奨されます。
- バッテリー最適化の解除: 設定メニューからAidLuxのバッテリー最適化を「無効」にし、バックグラウンドでの実行を許可します。
- メモリ管理: 不用なアプリを終了させ、AidLuxに十分なメモリリソースを確保します。
- 省電力モードの調整: 端末の性能モードを「高パフォーマンス」に設定し、システムがプロセスを抑制しないようにします。
Python開発環境の構築
AidLux上でPythonを使用する方法はいくつかあります。
ターミナルでの実行
AidLux内蔵のターミナルエミュレータを開き、以下のコマンドを入力してPython REPLを起動します。
python3 --version
スクリプトファイルを実行する場合は、通常のLinuxコマンドと同様にpython3 script.pyを使用します。
VS Codeの利用とコーディング実践
より本格的な開発を行うために、AidLuxにはVS Codeがプリインストールされているか、アプリライブラリから追加可能です。VS Codeを起動し、ワークスペースを設定する手順は以下の通りです。
- VS Codeを起動し、「Open Folder」を選択します。
- ターミナルから以下のコマンドを実行し、作業用ディレクトリを作成します。
mkdir -p ~/dev_projects/python_workspace - VS Codeで上記のパスを選択し、フォルダを開きます。
- 新しいファイル
main.pyを作成し、以下のようなコードを記述します。
import sys
import math
def calculate_series(n):
"""
1からnまでの数の二乗和と平方根の和を計算する関数
"""
square_sum = sum([x * x for x in range(1, n + 1)])
root_sum = sum([math.sqrt(x) for x in range(1, n + 1)])
return square_sum, root_sum
def main():
target_num = 10
sq, rt = calculate_series(target_num)
print(f"Target Number: {target_num}")
print(f"Sum of Squares: {sq}")
print(f"Sum of Roots: {rt:.4f}")
if __name__ == "__main__":
main()
記述後、エディタの実行ボタン(またはF5キー)を押し、Pythonインタプリタを選択してコードを実行します。必要に応じて拡張機能(Python Extension)のインストールを促される場合があります。
軽量な代替案:Pydroid 3
AidLuxは強力な環境ですが、バッテリー消費が激しい、またはAndroid 12との互換性で不安定な場合は、ネイティブに近い動作をするPydroid 3の使用も検討できます。Pydroid 3はLinuxコンテナを稼働させないため、リソース消費が少なく、スクリプトの学習や軽微な開発には十分なパフォーマンスを発揮します。