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ファイルは、便利な方法でデバイスに転送できます。


おわりに


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


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


素晴らしい開発を!



Source: https://habr.com/ru/post/J335074/


All Articles