Android (Suomi)

From ArchWiki
Jump to navigation Jump to search

Tiedostojen siirtäminen

On olemassa useita tapoja siirtää tiedostoja tietokoneen ja Android laitteen välillä:

Sovelluksen kehittäminen

Virallisesti tuettu tapa koota Android sovelluksia on käyttää Android Studiota.[1]

Android Studio

Android Studio on virallinen Android kehittämis ympäristö perustuen IntelliJ IDEA:an. Se antaa Android kehittäjän työkalut kehittelyä ja testailua varten.

Voit asentaa sen android-studioAUR paketilla.

Huomautus:
  • Varmista että Java ympäristö on asetettu kunnolla muuten android-studio ei pysty käynnistymään.
  • Jos Android Studio näkyy tyhjänä ikkunana, yritä siirtää _JAVA_AWT_WM_NONREPARENTING=1, katso pulma #57675.

Android Studion Setup Wizard asentaa tarvittavat #SDK paketit ja laittaa SDK oletukselta polkuun ~/Android/Sdk.

Komentoriviltä sovellusten kokoamista varten (käyttäen esimerkiksi ./gradlew assembleDebug) aseta ANDROID_SDK_ROOT mpäristömuuttuja SDKn sijaintiin.

SDK paketit

Android SDK paketit voidaan asentaa suoraan ylävirrasta käyttäen #Android Studion SDK hallintaohjelmaa tai sdkmanager komentorivi työkalua (osana Android SDK Tools). Jotkin Android SDK paketit ovat myös saatavissa AUR paketteina, yleensä ne asentuvat /opt/android-sdk/ polkuun.

Tarvittavat SDK paketit ovat:

Android SDK Paketti SDK-tyyli polku AUR paketti AUR malli CLI työkalut
SDK Tools työkalut android-sdkAUR android-sdk-dummyAUR sdkmanager, apkanalizer, avdmanager, mksdcard, proguard
SDK Build-Tools koontityökalut;versio android-sdk-build-toolsAUR android-sdk-build-tools-dummyAUR apksigner, zipalign
SDK Platform-Tools alustatyökalut android-sdk-platform-toolsAUR android-sdk-platform-tools-dummyAUR adb, #fastboot ja systrace
SDK Platform alustat;android-taso android-platformAUR, vanhemmat versiot tarpeeton

android-tools paketti antaa adb, #fastboot, e2fsdroid ja mke2fs.android SDK Platform-Tools:eista mukaanlukien mkbootimg ja ext2simg.

Huomautus:  
  • Koska Android SDK sisältää 32-bittisiä binäärejä, kannattaa aktivoida multilib paketinjakelu. Muuten saat error: target not found: lib32-* virheviestin.
  • Jos päätät suoraan asetnaa SDK paketit ylävirrasta, asenna AUR paketit AUR mallit sarakkeesta vetääksesi tarvittavat riippuvuudet.
  • Jos java.lang.NoClassDefFoundError poikkeus ilmestyy yritettäessä suorittaasdkmanager, käytä OpenJDK 8's JRE väliaikaisesti, asentamalla paketti jre8-openjdk ja vaihtamalla Java ympäristö.

Android Emulaattori

Android Emulaattori on saatavissa emulator SDK pakettina, android-emulatorAUR pakettina, ja on olemassa myös malli paketti sille: android-emulator-dummyAUR.

Android Emulaattorin suorittamiseen tarvitaan Intel tai ARM järjestelmä kuvake. Ne voidaan asentaa AUR paketinjakelusta[2], sdkmanagerilla tai käyttämällä Android Studion AVD Manageria.

Muut SDK paketit AUR paketinjakelussa

Android tuki kirjasto on nyt saatavilla netistä Googlen Maven paketinjakelusta. Sen voi myös asentaa offline tilassa jakelusta extras;android;m2repository SDK pakettina (myös saatavilla android-support-repositoryAUR).

/opt/android-sdk tekeminen ryhmä-kirjoitettavaksi

AUR paketit asentavat SDKn polkuun /opt/android-sdk/. Tällä polulla on root oikeudet, joten muista suorittaa sdk manageria root käyttäjänä. Jos aiot käyttää sitä tavallisena käyttäjänä, luo android-sdk käyttäjien ryhmä, lisää käyttäjäsi sinne.

# groupadd android-sdk
# gpasswd -a <user> android-sdk

Laita pystyyn pääsyn hallinta lista antaaksesi uudelle ryhmälle oikeudet kirjoittaa android-sdk kansioon. sdkmanageri voi myös luoda uusia tiedostoja, joten aseta ACL oletus ACL:äksi. X merkintä oletusryhmässä tarkoittaa suorituksen sallimista omistajalta tai keltä vain muulta.

# setfacl -R -m g:android-sdk:rwx /opt/android-sdk
# setfacl -d -m g:android-sdk:rwX /opt/android-sdk  

Kirjaudu sisään uudelleen tai käyttäjällä <user> kirjaudu terminaalissa uuteen ryhmään:

$ newgrp android-sdk

Muut IDE sovellukset

Android Studio on virallinen Android kehitysympäristö perustuen IntelliJ IDEAan. Vaihtoehtoisesti voidaan käyttää Netbeans sovellusta NBAndroid-V2 kanssa. Kaikki on kuvattu alapuolella.

Netbeans

Jos Netbeans on mieluisampi IDE ja Android sovelluksia halutaan kehittää, käytä NBAndroid-V2 .

Asenna android-sdkAUR paketti ja seuraa ohjeita NBANDROID README.

Muut työkalut

Marvin

Marvin on työkalu, joka auttaa aloittelijita asettamaan Android kehitysympäristön. marvin_dscAUR asentaminen auttaa asettamaan seuraavat asiat: JDK, Android SDK, IDE(t), ja AVD.

Koonti

Huomaa että nämä ohjeet perustuvat virallisiin AOSP koonti ohjeisiin. Muut Android-peräiset järjestelmät kuten LineageOS usein vaaivat ylimääräisiä askeleita.

Tarvittavat paketit

Huomautus: Ennen seuraavien askelien suorittamista, multilib paketinjakelu pitää olla aktivoituna /etc/pacman.conf tiedostossa.

2020 Huhtikuusta lähtien kootaksesi AOSP 10 tai LineageOS 17.1 tarvitaan (mahdollisesti vain osajoukko):

ja TTF fontti asennettuna, kuten ttf-dejavu. Erityisesti Python2 tai Javaa ei tarvita, sillä ne tulevat AOSPsta/Lineagesta. Seuraavat asiat koskevat vain vanhoja Android versioita.

Kootaksesi mitää versiota androidista, on asennettava nämä paketit:

aosp-develAUR metapaketti kaiken yksinkertaista asennusta varten.

Lisäksi LineageOS tarvitsee seuraavat paketit: xml2AUR, lzop, pngcrush, imagemagick

Ne voidaan asentaa lineageos-develAUR metapaketilla.

Java kehityssarja - JDK

Tarvittava JDK versio riippuu Android versiosta, jota kootaan:

  • Android 9 (Pie) ja uudemmat, Java sisältyy Androidin lähdekoodiin ja erillistä asennusta ei siksi tarvita.
  • Android 7 ja 8 (Nougat ja Oreo), OpenJDK 8 tarvitaan, joka on saatavissa jdk8-openjdk paketilla.
  • Android 5 ja 6 (Lollipop ja Marshmallow), OpenJDK 7 tarvitaan, joka on saatavissa jdk7-openjdk paketilla.
Huomautus: Vanhemmille Android versioille, mihin Java ei sisälly, Javan oletuksellinen polku on /usr/lib/jvm/java-version-openjdk-amd64.

Aseta JAVA_HOME muuttuja välttääksesi tätä vaatimusta, joka myös vastaa paremmin Arch Linux asennuksen polkua. Esimerkki:

$ export JAVA_HOME=/usr/lib/jvm/java-versio-openjdk
Tämä muutos toimii vain sen hetkisessä terminaali istunnossa.

Koontiympäristön valmistelu

Asenna repo paketti.

Luo polku koonnille.

$ mkdir ~/android
$ cd ~/android

Android koonti prosessi olettaa python olevan python2. Lisää se muuttujaan PATH:

$ mkdir bin
$ ln -s /bin/python2 bin/python
$ export PATH=$PWD/bin:$PATH

Vaihtoehtoisesti luo python2 virtuaaliympäristö ja aktivoi se:

$ virtualenv2 --system-site-packages venv
$ source venv/bin/activate
Huomautus:
  • Tämä aktivointi koskee vain sen hetkistä terminaali istuntoa. Virtuaaliympäristö env pidetään venv kansiossa.
  • "--system-site-packages" antaminen virtualenv2 osoittaa virtuaaliympäristön asennetuille python2.7 moduuleille. Tämän pitäisi antaa käyttöön kaikki python moduulit mitä tarvitaan koontiin, olettaen kaikkien tarvittavien olevan asennettuna, kuten esimerkiksi python2-mako.
  • Jos koonnin aikana edelleen saadaan virheilmoituksia littyen puuttuviin python moduuleihin nopea ja hieman rikkinäinen tapa korjata se on symlinkata /usr/lib/python2.7/* polkuun ~/android/venv/lib/python2.7/ (Vaihda ~/android vastaamaan omaa polkurakennettasi).

Esimerkki:

$ ln -s /usr/lib/python2.7/* ~/android/venv/lib/python2.7/

tai (olettaen koontipoluksi Data/Android_Build):

$ ln -s /usr/lib/python2.7/* /Data/Android_Build/venv/lib/python2.7/

Lähdekoodin lataaminen

Tämä kloonaa riippuvuudet. Tämän tarvitsee tehdä vain ensimmäisen kerran kun kootaan Androidia, tai jos halutaan vaihtaa haaraa.

  • repo sisältää -j argumentin joka operoi samalla tavalla kuin make komennossa. Koska se kontrolloi monia samanaikaisia latauksia, sitä arvoa kannattaa muuttaa sopimaan alavirran verkon kaistaan.
  • haara pitää määritellä (lista haaroista) kuittaamaan -b argumentin kanssa. Jos tämän argumentin jättää pois, tästä saadaan ns. master haara.
$ repo init -u https://android.googlesource.com/platform/manifest -b master
$ repo sync -j4
Huomautus: Synkronointiajan pienentämiseem voidaan hyödyntää -c argumenttia repo komennolla kuten tässä esimerkissä:
$ repo sync -j8 -c

-c argumentti synkronoi vain sen haaran joka on määritelty manifestissa, jonka vastaavaisuudessa päättää haara määriteltynä -b argumentilla tai sitten paketinjakelun ylläpitäjän oletushaara.

Odota pitkään. Kääntämätön lähdekoodi, .repo ja .git polkujen kanssa, joilla seurataan tämän kehitystä, yhdessä muodostavat valtavan määrän koodia. Android 10 julkaisemisen jälkeen, vähintään 250 GT vapaata levytilaa tarvitaan.

Huomautus: Jos haluat päivittää paikallisen kopion Android lähdekoodista, myöhemmällä aikaa, anna vain koonti haara, lataa Virtualenv, ja uudelleen synkronoi:
$ repo sync

Koodin koonti

Tämän pitäisi tehdä mitä tarvitaan AOSP:tä varten:

$ source build/envsetup.sh
$ lunch full-eng
$ make -j4

Jos suoritat lunch komentoa ilman argumentteja, se kysyy minkä koonnin haluat luoda. Käytä -j argumenttia numeron kanssa joka vastaa, tai on kaksinkertainen verraten ydin/säie määrään.

Koonti vie hyvin paljon aikaa.

Huomautus:
  • Huolehdi, että RAM-muisti ei lopu kesken. Android käyttää /tmp polkua raskaasti. Oletukselta partition tai levyn osan koko missä /tmp kansio on, on noin puolet RAM-muistin määrästä. Jos se täyttyy, koonti epäonnistuu. 4GT RAM-muistia tai enemmän on suosituksena. Vaihtoehtoisesti, voidaan poistaa koko tmpfs fstab:ista.
  • Android koonti ja suoritus oppaasta suomennettuna:

"GNU make pystyy hoitamaan rinnakkaisia tehtäviä -jN argumentilla ja on siis yleistä käyttää N tilalla numeroa välillä 1 tai 2 kertaa säikeiden määrää mitä tietokoneessa jolla koontia suoritetaan. Esimerkiksi dual-E5520 konessaa (2 CPUta, 4 ydintä per CPU, 2 säiettä per ydin), nopeimmat koonnit tehdään komennoilla make -j16 ja make -j32."

Koonnin testaus

Kun valmis, suorita/testaa viimeinen levykuva (tai useampi).

$ emulator

Live levykuvan luonti

Asennettavan levykuvan luontia varten on tarpeellista suorittaa:

make -j8 updatepackage

Tämä luo zip kuvakkeen out/target/product/hammerhead alle (hammerhead laitteen nimenä) joka on mahdollista asentaa.

Asentaminen

Joissain tapauksissa halutaan palata vakioverioon Androidista, Android mobiili laitteen räätälöidyn ROMmin asennuksen jälkeen. Laitekohtaisille asennusohjeille, käytä XDA foorumeita.

Fastboot

Fastboot (kuin myös ADB) sisältyy android-tools pakettiin.

Huomautus: Firmwaren palauttaminen käyttämällä fastboot ohjelmaa voi osoittautua hankalaksi, mutta haluat ehkä selata XDA kehittäjien foorumeita vakio firmwarelle, joka löytyy usein *.zip tiedostona, sen sisällä tuleekin firmware tiedostot sekä flash-all.sh skripti. Esimerkiksi Google Nexus firmwaret sisältäväy flash-all.sh skriptin tai toisena esimerkkina voisi olla OnePlus One - XDA kommenttiketju, mistä löytyy firmware sisälletyllä flash-all.sh skriptillä.
Huomautus: Jos saat no permissions virheilmoituksen tai suorittaminen jää roikkumaan < waiting for any device > ilmoituksella, joudut suorittamaan fastboot:in root käyttäjänä. Vaihtoehtoisesti voidaan asentaa android-udev paketti tai AUR pakettiandroid-udev-gitAUR ja yhdistämällä laite uudestaan.

Samsungin laitteet

Samsungin laitteisiin ei pystytä asentamaan Fastboot työkalun avulla. Vaihtoehtoina on vain Heimdall ja Odin (käyttämällä Windowsia ja VirtualBoxia).

Heimdall

Heimdall on järjestelmäriippumaton avoimeen lähdekoodiin perustuva työkalusarja, jota käytetään asentamaan firmwarea (tiedetään myös ROMmina) Samsungin mobiililaitteisiin ja joka myös tiedetään vaihtoehtona Odinille. Se voidaan asentaa heimdall paketilla.

Asennusohjeet löytyy Heimdallin GitLab jakelusta tai XDA foorumeilta.

Odin (Virtualbox)

Huomautus: Tänä osio sisältää vain valmistelun ei asennusohjeita. Hae XDA kehittäjä foorumeilta asennusohjeita erityiselle laitteelle. Esimerkiksi Samsung Galaxy S4.

On mahdollista myös palauttaa firmware (Android) Samsungin laitteille käyttäen Odinia, mutta vain VirtualBox:issa.

Arch Linux (isäntä) valmistelu:

  1. Asenna VirtualBox sen lisäosan kanssa ja vieras lisä.
  2. Asenna oma suosima, mutta Odinin kanssa yhteensopiva, Windows käyttöjärjestelmä (VirtualBoxin vieraslisien kanssa) virtuaalikiintolevylle VirtualBoxilla.
  3. Avaa VirtualBoxin asetukset Windows käyttöjärjestelmästä, navigoi kohtaan USB, sen jälkeen rasti (tai varmista että se on rastittuna) Enable USB 2.0 (EHCI) Controller.
  4. VirtualBox joka suorittaa Windows käyttöjärjestelmää, klikkaa menu napista Devices > USB Devices, jonka jälkeen klikkaa Samsung mobiililaitteesta, joka on yhdistetty koneeseesi USB liitännällä.

Windows (vieras) valmistelu:

  1. Asenna Samsungin ajurit.
  2. Asenna Odin.
  3. Lataa tarvittava Samsung firmware (Android) siihen älypuhelin malliin joka on käytössä

Varmista että konfiguraatio toimii:

  1. Laita laite Download tilaan ja yhdistä Linux laitteeseen.
  2. Virtuaalikoneen työkaluriviltä, valitse Devices > USB > ...Samsung... laite.
  3. Avaa Odin. Valkoiseen laatikkoon (suurehko alhaalta vasemmalta) nimellä Message, pitäisi tulla teksti samantapainen kuin tämä:
<ID:0/003> Added!!

joka tarkoittaa vain sitä että laite näkyy Odinille ja Windows käyttöjärjestelmälle ja on valmis asentelua varten.

Käytä Androidia GNU/Linux pohjalla

On olemassa monia projekteja ja methodeja, jotka tukeat Androidin suorittamista GNU/Linux pohjalla:

  • Anbox: container-pohjautuva ohjelma Androidin suorittamiseen Linux kerneleiden päällä
  • Android-x86: suora portti Androidista x86 arkkitehtuuriin