Saya ingin mengatur lingkungan dev Android dari baris perintah, dan menghadapi masalah berikut:
wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz
setelah mengekstrak file, jalankan
tools/android update sdk --no-ui
Namun, ini terlalu lambat untuk dijalankan
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
Hasilnya adalah tidak ada apa pun di folder build-tools, dan yang saya inginkan adalah aapt dan apkbuilder, karena saya ingin membangun apk dari baris perintah tanpa semut.
sumber
--all
opsi dalam tips resmi . Terima kasih.echo "yes"
dapat disingkat menjadiecho "y"
, tapi itu tidak berhasil dalam semua kasus. Dalam beberapa kasus, Anda bisa mendapatkan lebih dari satu permintaan lisensi, tergantung pada filter dan paket tertentu.echo "y"
akan menanggapi prompt pertama saja, tetapi tidak untuk yang lain. Saya berusaha membuatnya bekerja denganyes
perintah tanpa hasil sejauh ini.Seperti disebutkan dalam jawaban lain, Anda dapat menggunakan
--filter
opsi untuk membatasi paket yang diinstal:android update sdk --filter ...
Jawaban lain tidak menyebutkan bahwa Anda dapat menggunakan pengidentifikasi string konstan, bukan indeks (yang akan berubah) untuk opsi filter. Ini bermanfaat untuk pemasangan tanpa pengawasan atau skrip. Man for
--filter
option:android list sdk --all --extended
:Kemudian Anda dapat menggunakan id tali sebagai opsi filter untuk menentukan versi yang Anda inginkan:
android update sdk --filter tools,platform-tools,build-tools-19.0.3
dllsumber
--extended
opsi, membuatnya jelas apa yang harus dipasang untuk skrip CI.android update
juga akan memerlukan--all
opsi, jika tidak bantuan penggunaan ditampilkan. Misalnya:android update sdk --no-ui --all --filter build-tools-21.1.0
(dan +1 untuk--extended
opsi yang memungkinkan Anda melihat alias sepertibuild-tools-21.1.0
)--filter
dan--extended
opsi?--extended
opsi itu sehingga saya bisa menulis skrip dan menggunakannya di Continuous Integration Server saya di mana ia dapat menyegarkan sumber daya SDK itu sendiri. Tip yang bagus!Versi 25.2.3 (dan lebih tinggi) dari
Android SDK Tools
paket berisi alat baru - sdkmanager - yang menyederhanakan tugas menginstal alat-alat ini dari baris perintah.Itu terletak di
android_sdk/tools/bin
folder.Penggunaan (dari dokumentasi ):
Contoh penggunaan (di Mac saya):
Anda juga dapat menentukan berbagai opsi , misalnya untuk memaksa semua koneksi menggunakan HTTP (
--no_https
), atau untuk menggunakan server proxy (--proxy_host=address
dan--proxy_port=port
).Untuk memeriksa opsi yang tersedia, gunakan
--help
bendera. Di komputer saya (Mac), hasilnya adalah sebagai berikut:sumber
Warning: Unknown argument --package_file
?--package_file=packages.txt
.Alat Bangun ADB Tidak Akan Diunduh secara otomatis, dengan perintah pembaruan android sdk --no-ui
Jadi untuk menginstal tipe Buil-Tool (dalam konsol):
Ingat nomor yang terdaftar sebelum item dan jalankan yang berikut:
perintah harus diketik di / YourFolder / android-sdk-linux / tools
Juga untuk folder jarak jauh (server dibuka oleh ssh misalnya) ketik:
Untuk daftar sederhana paket-paket ADB ketik terminal:
untuk menginstal semua paket:
Atau dengan filter (koma adalah pemisah):
sumber
Sumber informasi hebat yang saya jumpai ketika mencoba menginstal semua Android SDK yang terkait dari baris perintah, adalah Dockerfile ini . Di dalam Dockerfile Anda dapat melihat bahwa penulis mengeksekusi satu perintah untuk menginstal
platform tools
danbuild tools
tanpa interaksi lainnya. Dalam hal OP telah mengajukan, perintah akan disesuaikan dengan:sumber
--all
benderaSaya baru saja bersenang-senang mendapatkan dependensi Android SDK diinstal melalui command line dan karena dokumentasi yang datang dengan alat dan online sangat kurang, saya pikir saya akan memposting apa yang saya temukan di sini.
Saya bekerja dengan
android sdk r24.4.1
untuklinux
. Ada dua perintah yang dapat Anda jalankan untuk mendaftar paket yang tersedia:android list sdk
dan semakin lengkap:
android list sdk --all
Nomor paket untuk paket tertentu berbeda untuk setiap perintah di atas! Misalnya, paket daftar sebelumnya
API 23.1 revision 3
sebagai paket#3
dan yang terakhir daftar sebagai#29
.Sekarang, ada dua cara berbeda untuk menginstal menggunakan perintah android.
tools/android update sdk --no-ui --filter <package number>
dan
tools/android update sdk -u -a -t <package number>
Karena setiap perintah instalasi dapat menggunakan # paket sebagai parameter, nomor paket mana yang Anda gunakan? Setelah banyak pencarian online dan coba-coba, saya menemukan itu
android update sdk --no-ui --filter
menggunakan nomor paket dariandroid list sdk
dan
android update sdk -u -a -t
menggunakan nomor paket dariandroid list sdk --all
Dengan kata lain - untuk menginstal
API 23.1 revision 3
Anda dapat melakukan salah satu dari:android update sdk --no-ui --filter 3
atau
android update sdk -u -a -t 29
Gila, tapi berhasil.
sumber
-a
adalah versi singkat dari--all
, itulah sebabnya menggunakan nomor paket itu. (-u
kependekan dari--no-ui
dan-t
merupakan kependekan dari--filter
).usage()
teks mereka dengan kenyataan.Sebagian besar jawaban tampaknya mengabaikan fakta bahwa Anda mungkin perlu menjalankan pembaruan di lingkungan tanpa kepala tanpa hak pengguna super, yang berarti skrip harus menjawab semua permintaan
y/n
lisensi secara otomatis.Inilah contoh yang berhasil.
Tidak peduli berapa banyak prompt yang Anda dapatkan, semua itu akan dijawab.
while/sleep
Loop ini terlihat seperti simulasi dari perintah yes , dan kenyataannya, hampir . Masalahnyayes
adalah bahwa itu membanjiri stdout dengan'y'
dan hampir tidak ada penundaan antara mengirim karakter tersebut dan versi yang harus saya tangani tidak memiliki opsi batas waktu dalam bentuk apa pun. Ini akan "mencemari" stdout dan skrip akan gagal mengeluhkan input yang salah. Solusinya adalah dengan menunda antara mengirim'y'
ke stdout, dan itulah yang dilakukan olehwhile/sleep
kombo.expect
tidak tersedia secara default pada beberapa distro linux dan saya tidak punya cara untuk menginstalnya sebagai bagian dari skrip CI saya, jadi harus menggunakan solusi yang paling umum dan tidak ada yang lebih generik daripada skrip bash sederhana, bukan?Sebagai soal fakta, saya membuat blog tentang hal itu ( NSBogan ), periksa untuk detail lebih lanjut di sini jika Anda tertarik.
sumber
Jika Anda telah
sdkmanager
menginstal (saya menggunakan MAC)lari
sdkmanager --list
ke daftar paket yang tersedia.Jika Anda ingin menginstal alat membangun, salin versi yang disukai dari daftar paket yang tersedia.
Untuk menginstal menjalankan versi yang disukai
sumber
Ya, saya punya masalah yang sama. Beberapa unduhan file sangat lambat (atau setidaknya sudah dalam beberapa hari terakhir). Jika Anda ingin mengunduh semuanya tidak banyak yang dapat Anda lakukan tentang itu.
Apakah Anda membiarkannya berjalan sampai selesai?
Satu hal yang dapat Anda lakukan adalah memfilter paket yang sedang diunduh menggunakan
-t
sakelar.Sebagai contoh:
Ketika saya mencoba ini beberapa hari yang lalu, saya mendapatkan versi 18.0.0 dari alat bantu yang diinstal. Untuk beberapa alasan, versi terbaru 18.0.1 tidak disertakan oleh filter ini dan satu-satunya cara untuk mendapatkannya adalah menginstal semuanya dengan
--all
sakelar.sumber
Saya lebih suka meletakkan skrip yang menginstal dependensi saya
Sesuatu seperti:
https://github.com/caipivara/android-scripts/blob/master/install-android-dependencies.sh
sumber
Saya baru saja mengalami masalah ini, jadi saya akhirnya menulis solusi 1 bash kotor dengan membaca dan menguraikan daftar alat yang bisa digunakan:
sumber
Terinspirasi dari jawaban oleh @ i4niac & @ Aurélien Lambert, inilah yang saya temukan
Penjelasan
android list sdk --all
perintah (Mengabaikan paket usang).sumber
Unduh SDK android dari developer.android.com (saat ini file sebesar 149mb untuk windows OS). Perlu dicatat bahwa android telah menghapus GUI sdkmanager tetapi memiliki versi baris perintah dari sdkmanager di folder bin yang terletak di dalam folder tools.
sdkmanager
klik enter.sdkmanager
(spasi), double hyphen (--
), daftar tipesdkmanager --list
(ini mencantumkan semua paket di manajer SDK)Untuk referensi lebih lanjut ikuti dokumen resmi di sini
Saya harap ini membantu. :)
sumber
Jika Anda tidak memerlukan Android Studio, Anda dapat mengunduh alat-alat baris perintah Android dasar dari developer.android.com di bagian Alat baris perintah saja .
dari CLI itu harus agak seperti:
atau
Setelah itu cukup bongkar arsip ke folder target
Dan sekarang kita dapat menginstal semua yang Anda butuhkan ...
Anda bisa mendapatkan daftar paket lengkap menggunakan perintah
./tools/bin/sdkmanager --list
Beberapa paket memerlukan penerimaan perjanjian lisensi. Anda dapat menerimanya secara interaktif atau meneruskan "y" ke aliran input, seperti ini (dua perjanjian dalam kasus):
Dan tentu saja, untuk kenyamanan Anda, Anda dapat mengekspor variabel seperti ANDROID_HOME atau ANDROID_SDK_ROOT (termasuk melakukannya di ~ / .profile atau ~ / .bash_profile) atau tambal PATH variabel - semua ini atas kebijakan Anda.
Contoh skrip:
Persyaratan: curl (atau wget) dan unzip
Penyelesaian masalah:
jika Anda melihat
Warning: Could not create settings
, Anda harus memilikitools
direktori di dalamcmdline-tools
direktori di dalam ANDROID_HOME (buat jika diperlukan dengan nama persis ini) lihat alat baris perintah Android sdkmanager selalu menunjukkan: Peringatan: Tidak dapat membuat pengaturansumber
Alat Bangun tidak dapat diunduh secara otomatis secara default seperti yang dikatakan Nate di https://stackoverflow.com/a/19416222/1104031 postingan.
Tapi saya menulis alat kecil yang membuat segalanya untuk Anda
Saya menggunakan alat "expect" sebagai danb di https://stackoverflow.com/a/17863931/1104031 postingan. Anda hanya perlu android-sdk dan
python27
,expect
.Script ini akan menginstal semua alat build, semua sdks dan semua yang Anda butuhkan untuk build otomatis:
sumber
echo "yes" | ./android update sdk --no-https --no-ui --filter 1,6
?Seperti yang dinyatakan dalam respons lain, alat bangun membutuhkan
--all
bendera yang harus dipasang. Anda juga lebih baik menggunakan-t
flag filter untuk menghindari menginstal SEMUA paket tetapi tidak ada cara untuk memfilter semua alat build.Sudah ada permintaan fitur untuk dua titik ini di pelacak bug AOSP. Jangan ragu untuk memilih mereka, ini mungkin membuat mereka terjadi suatu hari:
sumber
Saya mencoba ini untuk memperbarui semua, dan itu berhasil!
sumber
Mencoba
1. Daftar semua paket
2. Instal paket menggunakan perintah berikut
sumber
pembaruan android SDK
Perintah ini akan memperbarui dan menginstal semua rilis terbaru untuk Alat SDK, Alat Bangun, alat platform SDK.
Ini berhasil bagi saya.
sumber