この記事では、Ubuntuでのみapkファイルをビルドする方法を示します
コマンドラインユーティリティ。
通常、Android StudioはAdroid用のアプリケーションの作成に使用されます。 しかし、小さなプログラムを作成するには、コマンドラインを使用できます。 たとえば、コンピューターのリソースが制限されていて、アプリケーションが非常に単純な場合。
永続的な開発環境として、これはあまり便利ではないかもしれませんが、必要な場合
いくつかの小さなユーティリティを収集するだけでいいこともあります。
はじめに
Androidの開発は私の活動の主な焦点ではありません。自分のニーズに合わせて小さなアプリケーションを作成することがあります。
以前はQPythonを使用していましたが、非常に重く、使用するには不便です。 したがって、私はネイティブプログラムの開発に進みました。 Javaの表面的な知識があっても
これは大きな困難ではありません。
このガイドは、次のドキュメントに基づいています: Androidアプリの構築
コマンドラインから 。 詳細に興味がある人は、ソースを参照してください。
同様の記事:すでにこのリソースにあるメモ帳でHelloWorld for Androidを作成、組み立て、起動しましたが、Windowsでの開発を検討しました。
ここでは、Linuxでアプリケーションを構築する方法について説明します。
鉄
テストは、Atomプロセッサ、1GBのRAMを搭載した古いネットブックで実行されました
および8GB SSDドライブ。
オペレーティングシステム
Ubuntu 17.04でアプリケーションをテストしました。 Ubunu 16.04以降、android-sdkはパッケージマネージャーからインストールできます。
原則として、同じSDKは
サイトからダウンロードしてください 。
「コマンドラインツールを入手する」セクションからファイルをダウンロードします
実際、これはプロセスをあまり変更しませんが、パッケージマネージャーを使用すると、すべてがはるかに簡単になります。
違いは、追加パッケージ「android-platform」のインストール方法とインストールのみです。
パッケージのインストール
それでは、インストールに進みましょう。
sudo apt install android-sdk
Javaを含む多数のパッケージがインストールされます。
さらに、必要なAndroidのバージョンに応じて、必要なものをインストールする必要があります
パッケージのバージョン。 lolipop 5.1の場合、以下を設定する必要があります。
sudo apt install google-android-platform-22-installer sudo apt install google-android-build-tools-22-installer
追加のパッケージをインストールする必要もあります。
sudo apt install apksigner
adbを使用してapkパッケージをインストールする場合は、少し追加の設定が必要です。
ADBセットアップ
lsusbを使用して接続されたデバイスを見つける
# lsusb .... Bus 001 Device 004: ID 1782:75b0 MyDevice ....
そして、ルールを使用してファイルを作成します。
sudo vi /etc/udev/rules.d/51-android.rules
ファイルに1行追加します。
SUBSYSTEM=="usb", ATTR{idVendor}=="1782", MODE="0666", GROUP="plugdev"
ここで、「1782」はlsusbの出力から取得されます。
再起動サービス
sudo systemctl restart udev
adbを介して接続した後、デバイスで接続を確認する必要があります。
これですべての準備が整いました。
問題の声明
作成するアプリケーションは、「Hello world」よりも少し複雑です。
- ボタンをクリックすると、クリップボードから線を引く必要があります。
- 部分文字列をカット
- 部分文字列をバッファに書き戻します。
- Toastを使用して、サブストリングまたはエラーメッセージを出力します。
一般的に、すべては簡単です。
署名の作成
まず、ファイルに署名するためのキーを作成します。
keytool -genkeypair -keystore keystore.jks -alias androidkey \ -validity 10000 -keyalg RSA -keysize 2048 \ -storepass android -keypass android
これは後で便利になります。
マニフェスト
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.kx13.extractvidid" versionCode="1" versionName="0.1"> <uses-sdk android:minSdkVersion="22"/> <application android:label="EctractId" android:icon="@drawable/icon" > <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
ここでは、属性"android:label"でアプリケーションの名前を示します。 アプリケーションはアイコンも使用します。これは、属性"android:icon"で示されます 。 アイコン自体は、ディレクトリ「res / drawable-mdpi」ファイル「icon.png」にあります。 アイコンとして、任意の小さなpngファイルを使用できます。
レイアウト
要素が配置されたファイルは、ディレクトリ「/ res / layout /」にあります。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/my_text"/> <Button android:id="@+id/button_id" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="" /> </LinearLayout>
機能を拡張する場合は、ウィジェットを追加できます。
アプリケーションのソースコード
アプリケーションのソースコードは、「java / ru / kx13 / extractvidid」です。
package ru.kx13.extractvidid; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.Button; import android.widget.Toast; import android.view.View; import android.content.ClipboardManager; import android.content.ClipData; public class MainActivity extends Activity { private static String extract(String s) { int start = s.indexOf("%3D"); int end = s.indexOf("%26"); if(start == -1 || end == -1) { return "error"; } return s.substring(start + 3, end); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView)findViewById(R.id.my_text); text.setText(" youtube video id"); Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { ClipboardManager myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipData abc = myClipboard.getPrimaryClip(); ClipData.Item item = abc.getItemAt(0); String text = item.getText().toString(); String video_id = MainActivity.extract(text); ClipData myClip = ClipData.newPlainText("text", video_id); myClipboard.setPrimaryClip(myClip); Toast toast = Toast.makeText(getApplicationContext(), video_id, Toast.LENGTH_SHORT); toast.show(); } }); } }
コードは非常にシンプルでプリミティブですが、このテンプレートは他のアプリケーションで使用できます。
ビルドスクリプト
makeやantなどのビルドユーティリティは使用しませんでした。 すべてのコードは1つのファイルに収められており、特別な利点はありません。 したがって、これは通常のシェルスクリプトです。
#!/bin/sh SOURCE=ru/kx13/extractvidid BASE=/usr/lib SDK="${BASE}/android-sdk" BUILD_TOOLS="${SDK}/build-tools/22.0.1" PLATFORM="${SDK}/platforms/android-22" mkdir -p build/gen build/obj build/apk "${BUILD_TOOLS}/aapt" package -f -m -J build/gen/ -S res -M AndroidManifest.xml -I "${PLATFORM}/android.jar" javac -source 1.7 -target 1.7 -bootclasspath "${JAVA_HOME}/jre/lib/rt.jar" \ -classpath "${PLATFORM}/android.jar" -d build/obj \ build/gen/${SOURCE}/R.java java/${SOURCE}/MainActivity.java "${BUILD_TOOLS}/dx" --dex --output=build/apk/classes.dex build/obj/ "${BUILD_TOOLS}/aapt" package -f -M AndroidManifest.xml -S res/ -I "${PLATFORM}/android.jar" \ -F build/Extractor.unsigned.apk build/apk/ "${BUILD_TOOLS}/zipalign" -f 4 build/Extractor.unsigned.apk build/Extractor.aligned.apk apksigner sign --ks keystore.jks \ --ks-key-alias androidkey --ks-pass pass:android \ --key-pass pass:android --out build/Extractor.apk \ build/Extractor.aligned.apk
方法に関するいくつかのメモ。
- デフォルトでは、 BASE変数はバッチマネージャーがファイルを保存するパスを示します。 SDKを手動でインストールする場合、パスを変更する必要があります。
- 22以外のAPIバージョンを使用している場合、変数BUILD_TOOLSおよびPLATFORMを調整する必要があります
組み立てと設置
ビルドするには、実行するだけです
./build.sh
すべてが正しく構成されている場合、メッセージは表示されず、ファイル「Extractor.apk」が「build」ディレクトリに表示されます。
次に、アプリケーションをインストールする必要があります
adb install -r build/Extractor.apk
すべてがうまくいった場合、新しいアプリケーションがデバイスに表示されます。 実行して使用できます。
一般的に、 apkファイルは、便利な方法でデバイスに転送できます。
おわりに
この記事からわかるように、コンソールでの開発の開始は非常に簡単です。
コンソールユーティリティを使用すると、非常に少ないリソースでプログラムを開発できます。
素晴らしい開発を!