LinuxコンソールでAndroidアプリケーションを作成および収集します

画像







この記事では、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ダウンロード

原則として、同じ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」よりも少し複雑です。









一般的に、すべては簡単です。







基礎となるを用意しまし







署名の作成



まず、ファイルに署名するためのキーを作成します。







 keytool -genkeypair -keystore keystore.jks -alias androidkey \ -validity 10000 -keyalg RSA -keysize 2048 \ -storepass android -keypass android
      
      





これは後で便利になります。







マニフェスト



AndroidManifest.xml
 <?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 /」にあります。







activity_main.xml
 <?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」です。







MainActivity.java
 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(); } }); } }
      
      





コードは非常にシンプルでプリミティブですが、このテンプレートは他のアプリケーションで使用できます。







ビルドスクリプト



makeantなどのビルドユーティリティは使用しませんでした。 すべてのコードは1つのファイルに収められており、特別な利点はありません。 したがって、これは通常のシェルスクリプトです。







build.sh
 #!/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
      
      





方法に関するいくつかのメモ。









組み立てと設置



ビルドするには、実行するだけです







 ./build.sh
      
      





すべてが正しく構成されている場合、メッセージは表示されず、ファイル「Extractor.apk」が「build」ディレクトリに表示されます。







次に、アプリケーションをインストールする必要があります







 adb install -r build/Extractor.apk
      
      





すべてがうまくいった場合、新しいアプリケーションがデバイスに表示されます。 実行して使用できます。







一般的に、 apkファイルは、便利な方法でデバイスに転送できます。







おわりに



この記事からわかるように、コンソールでの開発の開始は非常に簡単です。







コンソールユーティリティを使用すると、非常に少ないリソースでプログラムを開発できます。







素晴らしい開発を!








All Articles