= Android = * Get Android Studio Bundle https://dl.google.com/dl/android/studio/install/1.2.2.0/android-studio-bundle-141.1980579-windows.exe * Install with Next, Next ..... * UI Theme Darcula Linux download https://dl.google.com/dl/android/studio/ide-zips/3.5.1.0/android-studio-ide-191.5900203-linux.tar.gz {{{#!highlight sh cp android-studio-ide-191.5900203-linux.tar.gz /opt/ cd /opt/ tar xvzf android-studio-ide-191.5900203-linux.tar.gz chgrp users android-studio/ -R /opt/android-studio/bin/studio.sh ### Preparing "Install Android SDK Tools (revision: 26.1.1)". Downloading https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip "Install Android SDK Tools (revision: 26.1.1)" ready. Installing Android SDK Tools in /home/vitor/Android/Sdk/tools "Install Android SDK Tools (revision: 26.1.1)" complete. "Install Android SDK Tools (revision: 26.1.1)" finished. Preparing "Install SDK Patch Applier v4 (revision: 1)". Downloading https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip "Install SDK Patch Applier v4 (revision: 1)" ready. Installing SDK Patch Applier v4 in /home/vitor/Android/Sdk/patcher/v4 "Install SDK Patch Applier v4 (revision: 1)" complete. "Install SDK Patch Applier v4 (revision: 1)" finished. Preparing "Install Android Emulator (revision: 29.2.1)". Downloading https://dl.google.com/android/repository/emulator-linux-5889189.zip "Install Android Emulator (revision: 29.2.1)" ready. Installing Android Emulator in /home/vitor/Android/Sdk/emulator "Install Android Emulator (revision: 29.2.1)" complete. "Install Android Emulator (revision: 29.2.1)" finished. Preparing "Install Android SDK Platform-Tools (revision: 29.0.4)". Downloading https://dl.google.com/android/repository/platform-tools_r29.0.4-linux.zip "Install Android SDK Platform-Tools (revision: 29.0.4)" ready. Installing Android SDK Platform-Tools in /home/vitor/Android/Sdk/platform-tools "Install Android SDK Platform-Tools (revision: 29.0.4)" complete. "Install Android SDK Platform-Tools (revision: 29.0.4)" finished. Preparing "Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)". Downloading https://dl.google.com/android/repository/build-tools_r29.0.2-linux.zip "Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)" ready. Installing Android SDK Build-Tools 29.0.2 in /home/vitor/Android/Sdk/build-tools/29.0.2 "Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)" complete. "Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)" finished. Preparing "Install Android SDK Platform 29 (revision: 3)". Downloading https://dl.google.com/android/repository/platform-29_r03.zip "Install Android SDK Platform 29 (revision: 3)" ready. Installing Android SDK Platform 29 in /home/vitor/Android/Sdk/platforms/android-29 "Install Android SDK Platform 29 (revision: 3)" complete. "Install Android SDK Platform 29 (revision: 3)" finished. Preparing "Install Sources for Android 29 (revision: 1)". Downloading https://dl.google.com/android/repository/sources-29_r01.zip "Install Sources for Android 29 (revision: 1)" ready. Installing Sources for Android 29 in /home/vitor/Android/Sdk/sources/android-29 "Install Sources for Android 29 (revision: 1)" complete. "Install Sources for Android 29 (revision: 1)" finished. Parsing /home/vitor/Android/Sdk/build-tools/29.0.2/package.xml Parsing /home/vitor/Android/Sdk/emulator/package.xml Parsing /home/vitor/Android/Sdk/patcher/v4/package.xml Parsing /home/vitor/Android/Sdk/platform-tools/package.xml Parsing /home/vitor/Android/Sdk/platforms/android-29/package.xml Parsing /home/vitor/Android/Sdk/sources/android-29/package.xml Parsing /home/vitor/Android/Sdk/tools/package.xml Android SDK is up to date. }}} * https://developer.android.com/studio/releases/gradle-plugin * https://services.gradle.org/distributions/ == Android SDK linux command line tools == {{{#!highlight sh cd /opt wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz tar xvzf android-sdk_r24.4.1-linux.tgz cd android-sdk-linux/tools ./android list sdk }}} {{{ 1- Android SDK Tools, revision 25.1.7 2- Android SDK Platform-tools, revision 24.0.2 3- Android SDK Build-tools, revision 24.0.2 13- SDK Platform Android 4.1.2, API 16, revision 5 }}} {{{#!highlight sh ./android update sdk --no-ui --filter 1,2,3,13 cd ../tools ./android create project --target android-16 --name AndroidProj --path ~/tmp/androidProj/ --activity MyProject --package androidproj.test --gradle --gradle-version 1.1.0 # 1.1.0 is the gradle plugin version cd ~/tmp/androidProj }}} === Project structure === {{{ . |-- build.gradle |-- gradle | `-- wrapper | |-- gradle-wrapper.jar | `-- gradle-wrapper.properties |-- gradlew |-- gradlew.bat |-- local.properties `-- src |-- androidTest | `-- java | `-- androidproj | `-- test | `-- MyProjectTest.java `-- main |-- AndroidManifest.xml |-- java | `-- androidproj | `-- test | `-- MyProject.java `-- res |-- drawable-hdpi | `-- ic_launcher.png |-- drawable-ldpi | `-- ic_launcher.png |-- drawable-mdpi | `-- ic_launcher.png |-- drawable-xhdpi | `-- ic_launcher.png |-- layout | `-- main.xml `-- values `-- strings.xml }}} {{{#!highlight sh vi gradle/wrapper/gradle-wrapper.properties # change version from 1.12 to 2.2.1 vi build.gradle # comment with // lines with Proguard ./gradlew ./gradlew tasks ./gradlew clean build find . -name "*.apk" # ./build/outputs/apk/androidProj-debug.apk }}} {{{ ./build/outputs/apk/androidProj-debug.apk ./build/outputs/apk/androidProj-release-unsigned.apk ./build/outputs/apk/androidProj-debug-unaligned.apk }}} === ./src/androidTest/java/androidproj/test/MyProjectTest.java === {{{#!highlight java package androidproj.test; import android.test.ActivityInstrumentationTestCase2; /** * This is a simple framework for a test of an Application. See * {@link android.test.ApplicationTestCase ApplicationTestCase} for more information on * how to write and extend Application tests. *

* To run this test, you can type: * adb shell am instrument -w \ * -e class androidproj.test.MyProjectTest \ * androidproj.test.tests/android.test.InstrumentationTestRunner */ public class MyProjectTest extends ActivityInstrumentationTestCase2 { public MyProjectTest() { super("androidproj.test", MyProject.class); } } }}} === ./src/main/AndroidManifest.xml === {{{#!highlight xml }}} === ./src/main/res/layout/main.xml === {{{#!highlight xml }}} === ./src/main/res/values/strings.xml === {{{#!highlight xml MyProject }}} === ./src/main/java/androidproj/test/MyProject.java === {{{#!highlight java package androidproj.test; import android.app.Activity; import android.os.Bundle; public class MyProject extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } }}} === ./build.gradle === {{{ buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' } } apply plugin: 'android' android { compileSdkVersion 'android-16' buildToolsVersion '24.0.2' buildTypes { release { //runProguard false // proguardFile getDefaultProguardFile('proguard-android.txt') } } } }}} === ./gradle/wrapper/gradle-wrapper.properties === {{{ #Wed Apr 10 15:27:10 PDT 2013 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip }}} == Vodafone 785 Slackware == * mtp-detect #after connecting phone on usb {{{ libmtp version: 1.1.11 Listing raw device(s) Device 0 (VID=1bbb and PID=0168) is a Alcatel 6030a. Found 1 device(s): Alcatel: 6030a (1bbb:0168) @ bus 1, dev 7 Attempting to connect device(s) Android device detected, assigning default bug flags }}} {{{#!highlight sh cd /tmp wget https://slackbuilds.org/slackbuilds/13.37/multimedia/mtpfs.tar.gz tar xvzf mtpfs.tar.gz cd mtpfs wget http://www.adebenham.com/debian/mtpfs_0.9.orig.tar.gz ./mtpfs.SlackBuild installpkg /tmp/mtpfs-0.9-i486-1_SBo.tgz mtpfs -o allow_other /mnt/tmp/ }}} {{{ mtp-folders Attempting to connect device(s) Device 0 (VID=1bbb and PID=0167) is a Alcatel/TCT 6010D/TCL S950. mtp-folders: Successfully connected mtp-files > /tmp/files.txt mtp-folders > /tmp/folders.txt }}} * Use Dolphin and mtp:/Vodafone 785/Armazenamento do telefone/DCIM/Camera/ == Android SDK - command line tools == {{{#!highlight sh cd ~ wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u222b10.tar.gz tar xvzf OpenJDK8U-jdk_x64_linux_hotspot_8u222b10.tar.gz jdk8u222-b10/bin/java -version cd ~ mkdir android cd android/ wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip unzip commandlinetools-linux-6858069_latest.zip cd cmdline-tools/ mkdir latest mv bin/ lib/ NOTICE.txt source.properties latest/ cd .. cmdline-tools/latest/bin/sdkmanager --update cmdline-tools/latest/bin/sdkmanager --version # install build tools 19.1.0 cmdline-tools/latest/bin/sdkmanager --install "build-tools;19.1.0" export ANDROID_HOME=/home/vitor/android/ export ANDROID_SDK_ROOT=/home/vitor/android/ export PATH=/usr/local/bin:/usr/bin:/bin:/home/vitor/jdk8u222-b10/bin # requires jdk8 export JAVA_HOME=/home/vitor/jdk8u222-b10/ cmdline-tools/latest/bin/sdkmanager --list Installed packages:=====================] 100% Computing updates... Path | Version | Description | Location ------- | ------- | ------- | ------- build-tools;19.1.0 | 19.1.0 | Android SDK Build-Tools 19.1 | build-tools/19.1.0/ build-tools;28.0.3 | 28.0.3 | Android SDK Build-Tools 28.0.3 | build-tools/28.0.3/ emulator | 30.1.5 | Android Emulator | emulator/ patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/ platform-tools | 30.0.5 | Android SDK Platform-Tools | platform-tools/ platforms;android-28 | 6 | Android SDK Platform 28 | platforms/android-28/ }}} == Docker environment == {{{#!highlight sh mkdir target nano Dockerfile }}} {{{ FROM ubuntu:20.04 RUN apt update RUN apt-get install -y curl sudo wget RUN curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - RUN apt install -y nodejs unzip gradle curl sudo RUN mkdir /app #RUN mkdir -p /root/Downloads #RUN cd ~/Downloads RUN wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u222b10.tar.gz RUN wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip RUN tar xvzf OpenJDK8U-jdk_x64_linux_hotspot_8u222b10.tar.gz RUN mv jdk8u222-b10/ ~ RUN mkdir ~/android RUN unzip commandlinetools-linux-6858069_latest.zip RUN mv cmdline-tools/ ~/android/ RUN cd ~/android/cmdline-tools/ && mkdir latest && mv bin/ lib/ NOTICE.txt source.properties latest/ RUN echo "export ANDROID_HOME=/root/android/" >> ~/.bashrc RUN echo "export ANDROID_SDK_ROOT=/root/android/" >> ~/.bashrc RUN echo "export PATH=/usr/local/bin:/usr/bin:/bin:/root/jdk8u222-b10/bin" >> ~/.bashrc RUN echo "export JAVA_HOME=/root/jdk8u222-b10/" >> ~/.bashrc RUN cat ~/.bashrc RUN /root/android/cmdline-tools/latest/bin/sdkmanager --update RUN /root/android/cmdline-tools/latest/bin/sdkmanager --version RUN yes | /root/android/cmdline-tools/latest/bin/sdkmanager --install "build-tools;19.1.0" RUN /root/android/cmdline-tools/latest/bin/sdkmanager --list # should show installed packages RUN echo "#!/bin/sh\n tail -f /etc/passwd" > /start.sh CMD ["sh","/start.sh"] }}} {{{#!highlight sh docker build -t env-docker-image . docker run -p 8081:8081 -d -it --rm --name env-docker-container --mount type=bind,source="$(pwd)"/target,target=/app env-docker-image docker ps docker exec -it 27868e5016fd bash }}}