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 tai Gnomen työpöytäympäristön kanssa (sisältää synkatut ilmoitukset & leikepöydän, multimedia hallinnan, ja tiedosto/URL jakaminen).
- pilvipalvelusta synkronoivat asiakasohjelmat
- Syncthing
- sendanywhereAUR – järjestelmästäriippumaton tiedoston jakaminen
- qrcpAUR – siirrä tiedostoja wifissä tietokoneesta mobiililaitteeseen QR-koodin skannauksella
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.
Android Studio luo .android
polun kotihakemistoon. Android Studio resetointia varten tämän polun voi poistaa.
- 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 |
---|---|---|---|---|
Komentorivi Työkalut | työkalut | android-sdk-cmdline-tools-latestAUR | android-sdk-cmdline-tools-latest-dummyAUR | apkanalyzer, avdmanager, lint, retrace, screenshot2, sdkmanager |
SDK Build-Tools | koontityökalut;versio | android-sdk-build-toolsAUR | android-sdk-build-tools-dummyAUR | aapt, aapt2, aidl, apksigner, bcc_compat, d8, dexdump, dx, lld, llvm-rs-cc, mainDexClases, split-select, zipalign |
SDK Platform-Tools | alustatyökalut | android-sdk-platform-toolsAUR | android-sdk-platform-tools-dummyAUR | adb, dmtracedump, e2fsdroid, etc1tool, #fastboot, hprof-conv, make_f2fs, make_f2fs_casefold, mke2fs, sload_f2fs, sqlite3, systrace |
SDK Platform | alustat;android-taso | android-platformAUR, vanhemmat versiot | android-platform-dummyAUR (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 asentaa SDK paketit ylävirrasta, asenna AUR paketit AUR mallit sarakkeesta saadaksesi tarvittavat riippuvuudet.
- Jos
java.lang.NoClassDefFoundError
poikkeus ilmestyy yritettäessä suorittaasdkmanager
, käytä OpenJDK 8 JRE:tä väliaikaisesti asentamalla paketti jre8-openjdk ja vaihtamalla Java ympäristö. Katso skdmanager --list ei toimi Java 9 kanssa
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 täältä.
Vim / Neovim
On mahdollista kirjoittaa flutter
ohjelmia Androidille ja iOS:lle käyttämällä tekstinkäsittely ohjelmaa (Neo)vim kuten IDE:tä. Asenna coc käyttäen jotain Vim lisäosiehallitsiaa. Asenna myös coc-flutter lisäosa automaattista täydennystä varten (kuten Android Studiossa) ja lataa koodi Android emulaattoriin.
Emacs
Jos haluaa käyttää Emacsia flutter
ohjelmien kehittämiseen, kannattaa asentaa lsp-dart, niin kuin täällä on sanottu.
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, sdlAUR, 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 paketit koskevat vain vanhoja Android versioita: {,{Pkg|lib32-gcc-libs}} git, gnupg, flex, bison, gperf, sdlAUR, wxgtk2, squashfs-tools, curl, ncurses, zlib, schedtool, perl-switch, zip, unzip, libxslt, 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.
/usr/lib/jvm/java-versio-openjdk-amd64
.
Aseta JAVA_HOME muuttuja välttääksesi ongelmia, 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
-c
vipua repo komennolla kuten tässä esimerkissä:
$ repo sync -j8 -c
-c
vipu synkronoi vain sen haaran, joka on määritelty manifestissa. Vastaavasti tämän päättää haara määriteltynä -b
vivulla 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 ja enemmän on suositus. Jos/tmp
ei ole tarpeeksi iso, sitä voi laajentaa. Vaihtoehtoisesti voidaan poistaa koko tmpfs fstab:ista. - Android koonti ja suorittamis oppaasta suomennettuna:
"GNU make pystyy hoitamaan rinnakkaisia tehtäviä -jN
vivulla ja on siis yleistä käyttää N tilalla numeroa välillä 1 tai 2 kerrottuna säikeiden määrällä, mitä tietokoneessa on jolla koontia suoritetaan. Esimerkiksi dual-E5520 koneessa (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.
- 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äyflash-all.sh
skriptin tai toisena esimerkkina voisi olla OnePlus One - XDA kommenttiketju, mistä löytyy firmware sisälletylläflash-all.sh
skriptillä.
- Jos saat
no permissions
virheilmoituksen tai suorittaminen jää roikkumaan< waiting for any device >
ilmoituksella, joudut suorittamaanfastboot
: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).
samloader
Ladataksesi alkuperäisen Samsungin laiteohjelmiston voidaan käyttää alustasta riippumatonta samloader skriptiä.
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 Githubista tai XDA foorumeilta.
Odin (Virtualbox)
On mahdollista myös palauttaa laiteohjelmisto (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 Arch Linux pohjalla
On olemassa monia projekteja ja methodeja, jotka tukeat Androidin suorittamista Arch Linux pohjalla:
-
Container -pohjautuvat ratkaisut ovat kaikkein suosituimpia. Se on läheisin tapa suorittaa Android ohjelmia ei-Android Linux kernelin kanssa. Ne integroituvat hyvin järjestelmiin ja ne toimivat tehokkaasti. Huomattavampia ovat:
- Anbox on ehkä kuuluisin container-pohjautuva ratkaisu Linuxille. Se on Android 7.1 pohjalla joka taas pohjautuu LineageOs ja on täysin avoimeen lähdekoodiin pohjautuva.
- Waydroid on haarukoitu Anboxista ja se on saanut paljon suosiota osakseen. Se on tehokkaampi, koska se toimii laitteisto-läheisemmin. Se perustuu uudempaan LineageOs 17.1 (Android 10) ja siinä pystyy myös asentamaan Google Play Storen ja muita Open Gappseja. Yksittäisten ikkunoiden lisäksi sillä voi myös käyttää täyttä Androir käyttöliittymää.
- On olemassa myös useita Chromium lisäosia, joilla voidaan suorittaa android ohjelmia:
- Arc Welder oli googlen lisäosa ohjelmien suorittamiseen ja testailuun Chrome OS pohjaa varten, mutta se on nykyään jo vanhentunut.
- ARChon on avoimen lähdekoodin lisäosa Chromiumia varten, jolla voidaan suorittaa android ohjelmia.
- On myös mahdollista käyttää android emulaattoreita. Etuna tässä on se, että arm ohjelmia pystytään suorittamaan x86:ssa. Tämä kumminkin maksaa tehokkuudessa. Esimerkkeinä:
- Android Studion sisään rakennettu emulaattori, kuten aiemmin mainittu tässä artikkelissa.
- Genymotion on Android emulaatio/testaus ympäristö.