Apa perbedaan antara "min sdk versi / target sdk versi" dan "compile sdk versi"? Saya tahu apa artinya min dan target SDK, tetapi apa artinya mengkompilasi versi SDK?
Di Eclipse, saya memiliki min / max dan target SDK, tetapi di android studio ada tiga pengaturan ini.
android
android-studio
Tobias
sumber
sumber
Jawaban:
Versi min sdk adalah rilis Android SDK yang paling awal yang dapat dijalankan oleh aplikasi Anda. Biasanya ini karena masalah dengan API sebelumnya, kurang fungsionalitas, atau beberapa masalah perilaku lainnya.
Versi SDK target adalah versi yang ditargetkan untuk dijalankan oleh aplikasi Anda . Idealnya, ini karena semacam kondisi lari yang optimal. Jika Anda "membuat aplikasi Anda untuk versi 19", ini adalah tempat yang akan ditentukan. Ini mungkin berjalan pada rilis sebelumnya atau yang lebih baru, tetapi inilah yang Anda tuju. Ini sebagian besar untuk menunjukkan seberapa mutakhir aplikasi Anda untuk digunakan di pasar, dll.
Versi sdk kompilasi adalah versi android yang digunakan IDE Anda (atau cara kompilasi lainnya) untuk membuat aplikasi saat Anda menerbitkan
.apk
file. Ini berguna untuk menguji aplikasi Anda karena itu adalah kebutuhan umum untuk mengkompilasi aplikasi Anda saat Anda mengembangkannya. Karena ini adalah versi untuk dikompilasi ke APK, itu akan menjadi versi rilis Anda. Demikian juga, disarankan agar ini cocok dengan versi SDK target Anda.sumber
Rumusnya adalah
minSdkVersion - adalah penanda yang menentukan versi Android minimum yang dapat diinstal aplikasi. Juga digunakan oleh Lint untuk mencegah panggilan API yang tidak ada. Itu juga berdampak pada Build Time. Jadi, Anda dapat menggunakan rasa yang dibuat untuk mengganti minSdkVersion ke maksimum selama pengembangan. Ini akan membantu membuat pembangunan lebih cepat menggunakan semua peningkatan yang disediakan oleh tim Android untuk kita. Misalnya beberapa fitur Java 8 hanya tersedia dari versi minSdkVersion tertentu.
targetSdkVersion - mengatakan sistem Android untuk mengaktifkan perubahan perilaku tertentu.
Sebagai contoh:
Mulai di Android 6.0 (API level 23)
Runtime Permissions
diperkenalkan. Jika Anda menetapkantargetSdkVersion
ke 22 atau lebih rendah aplikasi Anda tidak meminta izin kepada pengguna dalam waktu berjalan.Mulai di Android 8.0 (API level 26), semua
notifications
harus ditetapkan ke saluran atau tidak akan muncul. Pada perangkat yang menjalankan Android 7.1 (API level 25) dan lebih rendah, pengguna dapat mengelola notifikasi hanya berdasarkan per-aplikasi (secara efektif setiap aplikasi hanya memiliki satu saluran pada Android 7.1 dan lebih rendah).Mulai di Android 9 (API level 28)
Web-based data directories separated by process
,. JikatargetSdkVersion
28+ dan Anda membuat beberapaWebView
dalam berbagai proses yang berbeda, Anda akan mendapatkannyajava.lang.RuntimeException
compileSdkVersion - sebenarnya ini adalah versi SDK Platform dan memberi tahu Gradle yang digunakan Android SDK untuk dikompilasi. Saat Anda ingin menggunakan fitur baru atau men-debug
.java
file dari Android SDK Anda harus mengurus compileSdkVersion. Satu contoh lagi adalah menggunakan AndroidX yang memaksa untuk menggunakancompileSdkVersion
- level 28.compileSdkVersion
tidak termasuk dalam APK Anda : itu murni digunakan dicompile time
. Mengubah compileSdkVersion Anda tidak mengubah perilaku runtime. Ini dapat menghasilkan misalnya peringatan / kesalahan kompiler baru. Karena itu sangat disarankan agar Anda selalu mengkompilasi dengan SDK terbaru. Anda akan mendapatkan semua manfaat dari pemeriksaan kompilasi baru pada kode yang ada, menghindari API yang baru ditinggalkan, dan siap menggunakan API baru. Satu fakta lagicompileSdkVersion >= Support Library version
Anda dapat membaca lebih lanjut di sini . Saya juga merekomendasikan Anda untuk melihat contoh migrasi ke Android 8.0.
sumber
Versi min sdk adalah versi minimum sistem operasi Android yang diperlukan untuk menjalankan aplikasi Anda.
Versi SDK target adalah versi Android tempat aplikasi Anda dibuat untuk dijalankan.
Versi sdk kompilasi adalah versi Android yang digunakan alat bangun untuk mengkompilasi dan membangun aplikasi untuk melepaskan, menjalankan, atau men-debug.
Biasanya kompilasi versi SDK dan versi Target SDK adalah sama.
sumber
compileSdkVersion : CompileSdkVersion adalah versi API yang dikompilasi oleh aplikasi. Ini berarti Anda dapat menggunakan fitur Android API yang termasuk dalam versi API tersebut (dan juga semua versi sebelumnya). Jika Anda mencoba dan menggunakan fitur API 16 tetapi mengatur compileSdkVersion ke 15, Anda akan mendapatkan kesalahan kompilasi. Jika Anda mengatur compileSdkVersion ke 16 Anda masih dapat menjalankan aplikasi pada perangkat API 15.
minSdkVersion : Versi min sdk adalah versi minimum sistem operasi Android yang diperlukan untuk menjalankan aplikasi Anda.
targetSdkVersion : Versi SDK target adalah versi yang akan dijalankan aplikasi Anda.
sumber