Android (Suomi)
Tiedostojen siirtäminen
On olemassa useita tapoja siirtää tiedostoja tietokoneen ja Android laitteen välillä:
- USB kaapeli
- Media Transfer Protocol moderneille Android laitteille
- USB massamuisti vanhoille laitteille
- Android Debug Bridge
- erityiset USB tikut / tavallinen USB tikku adapterilla
- Bluetooth
- Arch Linux ohjelmat Android vastakappaleella
- asiakasohjelma tai palvelin protokollille joita voidaan käyttää tiedostojen siirtoon (kuten SSH, FTP, Samba tai HTTP)
- KDE Connect (kdeconnect) – integroi Android laitteen KDEn työpöytään (sisältää synkatut ilmoitukset & leikepöydän, multimedia hallinnan, ja tiedosto/URL jakaminen).
- pilvipalvelusta synkronoivat asiakasohjelmat
- Syncthing
- sendanywhereAUR – järjestelmästäriippumaton tiedoston jakaminen
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.
Asenna kyseinen ohjelma android-studioAUR paketilla.
- 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
.
- 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
/etc/pacman.conf
tiedostossa.2020 Huhtikuusta lähtien kootaksesi AOSP 10 tai LineageOS 17.1 tarvitaan (mahdollisesti vain osajoukko):
- base-devel multilib-devel gcc repo git gnupg gperf sdl wxgtk2 squashfs-tools curl ncurses zlib schedtool perl-switch zip unzip libxslt bc rsync ccache lib32-zlib lib32-ncurses lib32-readline ncurses5-compat-libsAUR lib32-ncurses5-compat-libsAUR
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:
- lib32-gcc-libs git gnupg flex bison gperf sdl wxgtk2 squashfs-tools curl ncurses zlib schedtool perl-switch zip unzip libxslt python2-virtualenv[broken link: package not found] bc rsync ncurses5-compat-libsAUR lib32-zlib lib32-ncurses lib32-readline lib32-ncurses5-compat-libsAUR
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[broken link: package not found] paketilla.
/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-openjdkTämä muutos toimii vain sen hetkisessä terminaali istunnossa.
Koontiympäristön valmistelu
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
- 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 kuinmake
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
$ 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.
$ 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.
- 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.
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ä.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)
On mahdollista myös palauttaa firmware (Android) Samsungin laitteille käyttäen Odinia, mutta vain VirtualBox:issa.
Arch Linux (isäntä) valmistelu:
- Asenna VirtualBox sen lisäosan kanssa ja vieras lisä.
- Asenna oma suosima, mutta Odinin kanssa yhteensopiva, Windows käyttöjärjestelmä (VirtualBoxin vieraslisien kanssa) virtuaalikiintolevylle VirtualBoxilla.
- 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.
- 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:
- Asenna Samsungin ajurit.
- Asenna Odin.
- Lataa tarvittava Samsung firmware (Android) siihen älypuhelin malliin joka on käytössä
Varmista että konfiguraatio toimii:
- Laita laite Download tilaan ja yhdistä Linux laitteeseen.
- Virtuaalikoneen työkaluriviltä, valitse Devices > USB > ...Samsung... laite.
- 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