[ ] Android linux |
apk Ubuntu
.
Adroid Android Studio.
.
, .
, , ,
- .
Android ,
- .
QPython, .
. Java
.
, linux.
, 1
8 SSD .
Ubuntu 17.04.
Ubunu 16.04 android-sdk .
, .
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
apk- adb, .
lsusb
# lsusb
....
Bus 001 Device 004: ID 1782:75b0 MyDevice
....
:
sudo vi /etc/udev/rules.d/51-android.rules
:
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
.
"android:label".
, "android:icon"
"res/drawable-mdpi" "icon.png". png .
"/res/layout/".
, .
"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, ..
.
shell :
#!/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
, "build" "Extractor.apk"
adb install -r build/Extractor.apk
, .
.
apk .
.
.
!