PENGGUNAAN SIGNING APLIKASI ANDROID

 Signing aplikasi Android

Sistem Android mengharuskan semua aplikasi yang diinstal ditandatangani secara digital dengan sertifikat yang kunci pribadinya dipegang oleh pengembang aplikasi. Sistem Android menggunakan sertifikat sebagai sarana untuk mengidentifikasi penulis aplikasi dan membangun hubungan kepercayaan antar aplikasi. Sertifikat tidak digunakan untuk mengontrol aplikasi mana yang dapat diinstal pengguna. Sertifikat tidak perlu ditandatangani oleh otoritas sertifikat: sertifikat ini sangat diizinkan, dan khas, untuk aplikasi Android untuk menggunakan sertifikat yang ditandatangani sendiri.
Poin penting yang perlu dipahami tentang penandatanganan aplikasi Android adalah:
Semua aplikasi harus ditandatangani. Sistem tidak akan menginstal aplikasi di emulator atau perangkat jika tidak ditandatangani.
Untuk menguji dan men-debug aplikasi Anda, alat build Signing aplikasi Android dengan kunci debug khusus yang dibuat oleh alat build Android SDK.
Ketika Anda siap untuk merilis aplikasi Anda untuk pengguna akhir, Anda harus menandatanganinya dengan kunci pribadi yang sesuai. Anda tidak dapat memublikasikan aplikasi yang ditandatangani dengan kunci debug yang dihasilkan oleh alat SDK.
Anda dapat menggunakan sertifikat yang ditandatangani sendiri untuk Signing aplikasi Android. Tidak diperlukan otoritas sertifikat.
Sistem menguji tanggal kedaluwarsa sertifikat penanda tangan hanya pada waktu pemasangan. Jika sertifikat penanda tangan aplikasi kedaluwarsa setelah aplikasi diinstal, aplikasi akan terus berfungsi secara normal.
Anda dapat menggunakan alat standar — Keytool dan Jarsigner — untuk menghasilkan kunci dan menandatangani file aplikasi Anda.
.apk
Setelah Anda menandatangani aplikasi untuk dirilis, kami sarankan Anda menggunakan alat ini untuk mengoptimalkan paket APK akhir.
zipalign

Sistem Android tidak akan menginstal atau menjalankan aplikasi yang tidak ditandatangani dengan tepat. Ini berlaku di mana pun sistem Android dijalankan, baik di perangkat yang sebenarnya atau di emulator. Untuk alasan ini, Anda harus menyiapkan pendaftaran untuk aplikasi Anda sebelum dapat menjalankannya atau men-debugnya di emulator atau perangkat.
Proses Signing
 



 
Proses build Android Signing aplikasi Android secara berbeda tergantung pada mode build mana yang Anda gunakan untuk membangun aplikasi Anda. Ada dua mode build: mode debug dan mode rilis. Anda menggunakan mode debug saat mengembangkan dan menguji aplikasi Anda. Anda menggunakan mode rilis saat ingin membuat versi rilis aplikasi yang dapat Anda distribusikan langsung ke pengguna atau dipublikasikan di marketplace aplikasi seperti Google Play.
Saat Anda membangun dalam mode debug, alat build Android SDK menggunakan utilitas Keytool (disertakan dalam JDK) untuk membuat kunci debug. Karena alat build SDK membuat kunci debug, mereka mengetahui alias dan sandi kunci debug. Setiap kali Anda mengkompilasi aplikasi Anda dalam mode debug, alat build menggunakan kunci debug bersama dengan utilitas Jarsigner (juga termasuk dalam JDK) untuk menandatangani file aplikasi Anda. Karena alias dan sandi diketahui oleh alat build SDK, alat tidak perlu meminta alias dan sandi kunci debug setiap kali Anda mengompilasi.
.apk
Saat Anda membangun dalam mode rilis, Anda menggunakan kunci pribadi Anda sendiri untuk Signing aplikasi Android. Jika Anda tidak memiliki kunci pribadi, Anda dapat menggunakan utilitas Keytool untuk membuatnya untuk Anda. Saat Anda mengkompilasi aplikasi Anda dalam mode rilis, alat build menggunakan kunci pribadi Anda bersama dengan utilitas Jarsigner untuk menandatangani file aplikasi Anda. Karena sertifikat dan kunci pribadi yang Anda gunakan adalah milik Anda sendiri, Anda harus memberikan kata sandi untuk keystore dan alias kunci.
.apk
Proses penandatanganan debug terjadi secara otomatis saat Anda menjalankan atau men-debug aplikasi menggunakan Eclipse dengan plugin ADT. Penandatanganan debug juga terjadi secara otomatis saat Anda menggunakan skrip build Ant dengan opsi tersebut. Anda dapat mengotomatiskan proses penandatanganan rilis dengan menggunakan Wizard Ekspor Eclipse atau dengan memodifikasi skrip build Ant dan membangun dengan opsi tersebut.
debug
release
Strategi Signing
 



 
Beberapa aspek penandatanganan aplikasi dapat memengaruhi cara Anda mendekati pengembangan aplikasi Anda, terutama jika Anda berencana untuk merilis beberapa aplikasi.
Secara umum, strategi yang disarankan untuk semua pengembang adalah menandatangani semua aplikasi Anda dengan sertifikat yang sama, sepanjang masa pakai yang diharapkan dari aplikasi Anda. Ada beberapa alasan mengapa Anda harus melakukannya:
Peningkatan aplikasi – Saat Anda merilis pembaruan ke aplikasi Anda, Anda akan ingin terus menandatangani pembaruan dengan sertifikat atau set sertifikat yang sama, jika Anda ingin pengguna meningkatkan dengan mulus ke versi baru. Ketika sistem menginstal pembaruan ke aplikasi, itu membandingkan sertifikat di versi baru dengan yang ada di versi yang ada. Jika sertifikat sama persis, termasuk data sertifikat dan urutan, maka sistem mengizinkan pembaruan. Jika Anda menandatangani versi baru tanpa menggunakan sertifikat yang cocok, Anda juga perlu menetapkan nama paket yang berbeda ke aplikasi — dalam hal ini, pengguna menginstal versi baru sebagai aplikasi yang sama sekali baru.
Modularitas aplikasi – Sistem Android memungkinkan aplikasi yang ditandatangani oleh sertifikat yang sama untuk berjalan dalam proses yang sama, jika aplikasi meminta, sehingga sistem memperlakukannya sebagai satu aplikasi. Dengan cara ini Anda dapat menyebarkan aplikasi Anda dalam modul, dan pengguna dapat memperbarui setiap modul secara independen jika diperlukan.
Berbagi kode/data melalui izin – Sistem Android menyediakan pemberlakuan izin berbasis tanda tangan, sehingga aplikasi dapat mengekspos fungsionalitas ke aplikasi lain yang ditandatangani dengan sertifikat tertentu. Dengan menandatangani beberapa aplikasi dengan sertifikat yang sama dan menggunakan pemeriksaan izin berbasis tanda tangan, aplikasi Anda dapat berbagi kode dan data dengan cara yang aman.

Pertimbangan penting lainnya dalam menentukan strategi penandatanganan Anda adalah cara mengatur masa berlaku kunci yang akan Anda gunakan untuk Signing aplikasi Android.
Jika Anda berencana untuk mendukung peningkatan untuk satu aplikasi, Anda harus memastikan bahwa kunci Anda memiliki masa berlaku yang melebihi masa pakai yang diharapkan dari aplikasi tersebut. Masa berlaku 25 tahun atau lebih dianjurkan. Ketika masa berlaku kunci Anda berakhir, pengguna tidak akan lagi dapat meningkatkan ke versi baru aplikasi Anda dengan mulus.
Jika Anda akan menandatangani beberapa aplikasi berbeda dengan kunci yang sama, Anda harus memastikan bahwa masa berlaku kunci Anda melebihi masa pakai yang diharapkan dari semua versi semua aplikasi, termasuk aplikasi dependen yang dapat ditambahkan ke suite di masa mendatang.
Jika Anda berencana memublikasikan aplikasi di Google Play, kunci yang Anda gunakan untuk menandatangani aplikasi harus memiliki masa berlaku yang berakhir setelah 22 Oktober 2033. Google Play memberlakukan persyaratan ini untuk memastikan bahwa pengguna dapat mengupgrade aplikasi dengan lancar saat versi baru tersedia.

Saat Anda mendesain aplikasi Anda, ingatlah poin-poin ini dan pastikan untuk menggunakan sertifikat yang sesuai untuk Signing aplikasi Android.
Pengaturan Dasar untuk Penandatanganan
 



 
Sebelum Anda mulai, pastikan bahwa utilitas Keytool dan utilitas Jarsigner tersedia untuk alat build SDK. Kedua alat ini tersedia di JDK. Dalam kebanyakan kasus, Anda dapat memberi tahu alat build SDK cara menemukan utilitas ini dengan menyetel variabel lingkungan Anda sehingga merujuk pada JDK yang sesuai. Atau, Anda dapat menambahkan Keytool dan Jarsigner versi JDK ke variabel Anda.
JAVA_HOME
PATH
Jika Anda mengembangkan pada versi Linux yang awalnya datang dengan GNU Compiler untuk Java, pastikan bahwa sistem menggunakan Keytool versi JDK, bukan versi gcj. Jika Keytool sudah ada di Anda, itu mungkin menunjuk ke symlink di . Dalam hal ini, periksa target symlink untuk memastikannya menunjuk ke Keytool di JDK.
PATH
/usr/bin/keytool
Masuk dalam Mode Debug
 



 
Alat build Android menyediakan mode penandatanganan debug yang memudahkan Anda mengembangkan dan men-debug aplikasi, sambil tetap memenuhi persyaratan sistem Android untuk menandatangani APK. Saat menggunakan mode debug untuk membuat aplikasi Anda, alat SDK memanggil Keytool untuk secara otomatis membuat keystore dan kunci debug. Kunci debug ini kemudian digunakan untuk menandatangani APK secara otomatis, jadi Anda tidak perlu menandatangani paket dengan kunci Anda sendiri.
Alat SDK membuat keystore/key debug dengan nama/sandi yang telah ditentukan:
Nama keystore: "debug.keystore"
Kata sandi keystore: "android"
Alias kunci: "androiddebugkey"
Kata sandi utama: "android"
CN: "CN = Android Debug, O = Android, C = AS"

Jika perlu, Anda dapat mengubah lokasi/nama keystore/keystore/key debug atau menyediakan keystore/key debug kustom untuk digunakan. Namun, setiap keystore/key debug kustom harus menggunakan nama keystore/key dan kata sandi yang sama dengan kunci debug default (seperti dijelaskan di atas). (Untuk melakukannya di Eclipse/ADT, buka Preferensi Windows > > Android > Build.)
Peringatan: Anda tidak dapat merilis aplikasi Anda ke publik saat ditandatangani dengan sertifikat debug.
Pengguna Eclipse
Jika Anda mengembangkan di Eclipse/ADT (dan telah mengatur Keytool dan Jarsigner seperti yang dijelaskan di atas dalam Pengaturan Dasar untuk Penandatanganan), masuk ke mode debug diaktifkan secara default. Saat Anda menjalankan atau men-debug aplikasi, ADT menandatangani file dengan sertifikat debug, berjalan pada paket, lalu menginstalnya di emulator yang dipilih atau perangkat yang terhubung. Tidak diperlukan tindakan khusus dari pihak Anda, asalkan ADT memiliki akses ke Keytool.
.apk
zipalign
Pengguna Semut
Jika Anda menggunakan Ant untuk membuat file Anda, mode penandatanganan debug diaktifkan dengan menggunakan opsi dengan perintah (dengan asumsi bahwa Anda menggunakan file yang dihasilkan oleh alat). Saat Anda menjalankan untuk mengompilasi aplikasi, skrip build akan menghasilkan keystore/key dan menandatangani APK untuk Anda. Skrip kemudian juga menyelaraskan APK dengan alat tersebut. Tidak diperlukan tindakan lain dari pihak Anda. Baca Membangun dan Menjalankan Aplikasi di Baris Perintah untuk informasi lebih lanjut.
.apk
debug
ant
build.xml
android
ant debug
zipalign
Kedaluwarsa Sertifikat Debug
Sertifikat yang ditandatangani sendiri yang digunakan untuk Signing aplikasi Android dalam mode debug (default pada Eclipse/ADT dan Ant builds) akan memiliki tanggal kedaluwarsa 365 hari sejak tanggal pembuatannya.
Ketika sertifikat kedaluwarsa, Anda akan mendapatkan kesalahan build. Pada build Ant, kesalahannya terlihat seperti ini:
debug:
[echo] Packaging bin/samples-debug.apk, and signing it with a debug key...
[exec] Debug Certificate expired on 8/4/08 3:43 PM
Di Eclipse/ADT, Anda akan melihat kesalahan serupa di konsol Android.
Untuk memperbaiki masalah ini, cukup hapus file. Lokasi penyimpanan default untuk AVD adalah di OS X dan Linux, di Windows XP, dan di Windows Vista dan Windows 7.
debug.keystore
~/.android/
C:\Documents and Settings\<user>\.android\
C:\Users\<user>\.android\
Lain kali Anda membangun, alat build akan meregenerasi keystore baru dan kunci debug.
PerPeringatankan bahwa, jika komputer pengembangan Anda menggunakan lokal non-Gregorian, alat build mungkin secara keliru menghasilkan sertifikat debug yang sudah kedaluwarsa, sehingga Anda mendapatkan kesalahan saat mencoba mengkompilasi aplikasi Anda. 
Masuk dalam Mode Rilis
 



 
Saat aplikasi Anda siap dirilis ke pengguna lain, Anda harus:
Dapatkan kunci pribadi yang sesuai
Mengkompilasi aplikasi dalam mode rilis
Tanda tangani aplikasi Anda dengan kunci pribadi Anda
Sejajarkan paket APK akhir

Jika Anda mengembangkan di Eclipse dengan plugin ADT, Anda dapat menggunakan Wizard Ekspor untuk melakukan prosedur kompilasi, tanda tangani, dan sejajarkan. Wizard Ekspor bahkan memungkinkan Anda untuk menghasilkan keystore baru dan kunci pribadi dalam prosesnya.
1. Dapatkan kunci pribadi yang sesuai
Dalam persiapan untuk Signing aplikasi Android, Anda harus terlebih dahulu memastikan bahwa Anda memiliki kunci pribadi yang sesuai untuk ditandatangani. Kunci pribadi yang sesuai adalah kunci yang:
Berada dalam kepemilikan Anda
Mewakili entitas pribadi, perusahaan, atau organisasi yang akan diidentifikasi dengan aplikasi
Memiliki masa berlaku yang melebihi masa pakai aplikasi atau rangkaian aplikasi yang diharapkan. Masa berlaku lebih dari 25 tahun direkomendasikan.
Jika Anda berencana untuk memublikasikan aplikasi di Google Play, perPeringatankan bahwa masa berlaku yang berakhir setelah 22 Oktober 2033 adalah persyaratan. Anda tidak dapat mengunggah aplikasi jika ditandatangani dengan kunci yang validitasnya kedaluwarsa sebelum tanggal tersebut.
Bukan kunci debug yang dihasilkan oleh alat Android SDK.

Kuncinya mungkin ditandatangani sendiri. Jika Anda tidak memiliki kunci yang sesuai, Anda harus membuatnya menggunakan Keytool. Pastikan bahwa Anda memiliki Keytool yang tersedia.
Untuk menghasilkan kunci yang ditandatangani sendiri dengan Keytool, gunakan perintah dan berikan salah satu opsi yang tercantum di bawah ini (dan yang lainnya, sesuai kebutuhan). 
keytool
 
Opsi Keytool
Deskripsi
-genkey
Menghasilkan pasangan kunci (kunci publik dan pribadi)
-v
Aktifkan output verbose.
-alias <alias_name>
Alias untuk kunci. Hanya 8 karakter pertama dari alias yang digunakan.
-keyalg <alg>
Algoritma enkripsi yang digunakan saat membuat kunci. Baik DSA dan RSA didukung.
-keysize <size>
Ukuran setiap kunci yang dihasilkan (bit). Jika tidak disediakan, Keytool menggunakan ukuran kunci default 1024 bit. Secara umum, sebaiknya gunakan ukuran kunci 2048 bit atau lebih tinggi.
-dname <name>
Nama Terhormat yang menjelaskan siapa yang membuat kunci. Nilai ini digunakan sebagai bidang penerbit dan subjek dalam sertifikat yang ditandatangani sendiri.
PerPeringatankan bahwa Anda tidak perlu menentukan opsi ini di baris perintah. Jika tidak disediakan, Jarsigner meminta Anda untuk memasukkan setiap bidang Nama Terhormat (CN, OU, dan sebagainya).
-keypass <password>
Kata sandi untuk kunci.
Sebagai tindakan pencegahan keamanan, jangan sertakan opsi ini di baris perintah Anda. Jika tidak disediakan, Keytool meminta Anda untuk memasukkan kata sandi. Dengan cara ini, kata sandi Anda tidak disimpan dalam riwayat shell Anda.
-validity <valdays>
Masa berlaku untuk kunci, dalam beberapa hari.
Nota: Direkomendasikan nilai 10000 atau lebih tinggi.
-keystore <keystore-name>.keystore
Nama untuk keystore yang berisi kunci privat.
-storepass <password>
Kata sandi untuk keystore.
Sebagai tindakan pencegahan keamanan, jangan sertakan opsi ini di baris perintah Anda. Jika tidak disediakan, Keytool meminta Anda untuk memasukkan kata sandi. Dengan cara ini, kata sandi Anda tidak disimpan dalam riwayat shell Anda.
Berikut adalah contoh perintah Keytool yang menghasilkan kunci privat:
$ keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Menjalankan contoh perintah di atas, Keytool meminta Anda untuk memberikan kata sandi untuk keystore dan kunci, dan untuk menyediakan bidang Distinguished Name untuk kunci Anda. Kemudian menghasilkan keystore sebagai file bernama . Keystore dan kunci dilindungi oleh kata sandi yang Anda masukkan. Keystore berisi satu kunci, berlaku selama 10000 hari. Alias adalah nama yang akan Anda gunakan nanti, untuk merujuk ke keystore ini saat Signing aplikasi Android. 
my-release-key.keystore
Untuk informasi selengkapnya tentang Keytool, lihat dokumentasi di http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
2. Kompilasi aplikasi dalam mode rilis
Untuk merilis aplikasi Anda kepada pengguna, Anda harus mengkompilasinya dalam mode rilis. Dalam mode rilis, aplikasi yang dikompilasi tidak ditandatangani secara default dan Anda harus menandatanganinya dengan kunci pribadi Anda.
Peringatan: Anda tidak dapat merilis aplikasi anda tanpa tanda tangan, atau ditandatangani dengan kunci debug.
Dengan Eclipse
Untuk mengekspor APK yang tidak ditandatangani dari Eclipse, klik kanan proyek di Package Explorer dan pilih Android Tools > Export Unsigned Application Package. Kemudian tentukan lokasi file untuk APK yang tidak ditandatangani. (Atau, buka file Anda di Eclipse, pilih tab Manifes, dan klik Ekspor APK yang tidak ditandatangani.)
AndroidManifest.xml
PerPeringatankan bahwa Anda dapat menggabungkan langkah-langkah kompilasi dan penandatanganan dengan Wizard Ekspor.
Dengan Ant
Jika Anda menggunakan Ant, Anda dapat mengaktifkan mode rilis dengan menggunakan opsi dengan perintah. Misalnya, jika Anda menjalankan Ant dari direktori yang berisi file Anda, perintahnya akan terlihat seperti ini:
release
ant
build.xml
$ ant release
Secara default, skrip build mengkompilasi APK aplikasi tanpa menandatanganinya. File output dalam proyek Anda akan menjadi file . Karena APK aplikasi masih belum ditandatangani, Anda harus menandatanganinya secara manual dengan kunci pribadi Anda dan kemudian menyelaraskannya menggunakan file .
bin/
<your_project_name>-unsigned.apk
zipalign
Namun, skrip build Ant juga dapat melakukan penandatanganan dan penyelarasan untuk Anda, jika Anda telah menyediakan jalur ke keystore Anda dan nama alias kunci Anda dalam file proyek. Dengan informasi ini diberikan, skrip build akan meminta Anda untuk keystore dan kata sandi alias Anda saat Anda melakukan, itu akan menandatangani paket dan kemudian menyelaraskannya. File keluaran akhir sebagai gantinya adalah file . Dengan langkah-langkah ini otomatis untuk Anda, Anda dapat melewati prosedur manual di bawah ini (langkah 3 dan 4). Untuk mempelajari cara menentukan keystore dan alias Anda dalam file, lihat Membangun dan Menjalankan Aplikasi di Baris Perintah.
ant.properties
ant release
bin/
<your_project_name>-release.apk
ant.properties
3. Tanda tangani aplikasi Anda dengan kunci pribadi Anda
Ketika Anda memiliki paket aplikasi yang siap untuk ditandatangani, Anda dapat menandatanganinya menggunakan alat Jarsigner. Pastikan Anda memiliki Jarsigner yang tersedia di komputer Anda, seperti yang dijelaskan dalam Pengaturan Dasar. Selain itu, pastikan keystore yang berisi kunci pribadi Anda tersedia.
Untuk menandatangani aplikasi, Anda menjalankan Jarsigner, merujuk pada APK aplikasi dan keystore yang berisi kunci pribadi yang digunakan untuk menandatangani APK. Tabel di bawah ini menunjukkan opsi yang dapat Anda gunakan.
Opsi Jarsigner
Deskripsi
-keystore <keystore-name>.keystore
Nama keystore yang berisi kunci pribadi Anda.
-verbose
Aktifkan output verbose.
-sigalg
Nama tanda tangan algorithim untuk digunakan dalam menandatangani APK. Gunakan nilai .
MD5withRSA
-digestalg
Pesan mencerna algorithim untuk digunakan dalam memproses entri APK. Gunakan nilai .
SHA1
-storepass <password>
Kata sandi untuk keystore.
Sebagai tindakan pencegahan keamanan, jangan sertakan opsi ini di baris perintah Anda kecuali Anda bekerja di komputer yang aman. Jika tidak diberikan, Jarsigner meminta Anda untuk memasukkan kata sandi. Dengan cara ini, kata sandi Anda tidak disimpan dalam riwayat shell Anda.
-keypass <password>
Kata sandi untuk kunci pribadi.
Sebagai tindakan pencegahan keamanan, jangan sertakan opsi ini di baris perintah Anda kecuali Anda bekerja di komputer yang aman. Jika tidak diberikan, Jarsigner meminta Anda untuk memasukkan kata sandi. Dengan cara ini, kata sandi Anda tidak disimpan dalam riwayat shell Anda.
Inilah cara Anda menggunakan Jarsigner untuk menandatangani paket aplikasi bernama , menggunakan contoh keystore yang dibuat di atas. 
my_application.apk
$ jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore
my_application.apk alias_name
Menjalankan contoh perintah di atas, Jarsigner meminta Anda untuk memberikan kata sandi untuk keystore dan key. Ini kemudian memodifikasi APK di tempat, artinya APK sekarang ditandatangani. PerPeringatankan bahwa Anda dapat menandatangani APK beberapa kali dengan kunci yang berbeda.
Peringatan: Pada JDK 7, algorithim penandatanganan default telah berubah, mengharuskan Anda untuk menentukan tanda tangan dan mencerna algorithims ( dan ) ketika Anda menandatangani APK.
-sigalg
-digestalg
Untuk memverifikasi bahwa APK Anda ditandatangani, Anda dapat menggunakan perintah seperti ini:
$ jarsigner -verify my_signed.apk
Jika APK ditandatangani dengan benar, Jarsigner mencetak "jar verified". Jika Anda ingin detail lebih lanjut, Anda dapat mencoba salah satu perintah ini:
$ jarsigner -verify -verbose my_application.apk
atau
$ jarsigner -verify -verbose -certs my_application.apk
Perintah di atas, dengan opsi ditambahkan, akan menunjukkan kepada Anda baris "CN=" yang menjelaskan siapa yang membuat kunci.
-certs
Nota: Jika Anda melihat "CN=Android Debug", ini berarti APK telah ditandatangani dengan kunci debug yang dihasilkan oleh Android SDK. Jika Anda bermaksud merilis aplikasi, Anda harus menandatanganinya dengan kunci privat, bukan kunci debug.
Untuk informasi selengkapnya tentang Jarsigner, lihat dokumentasi di http://docs.oracle.com/javase/6/docs/technotes/tools/windows/jarsigner.html
4. Sejajarkan paket APK akhir
Setelah Anda menandatangani APK dengan kunci pribadi Anda, jalankan pada file. Alat ini memastikan bahwa semua data yang tidak terkompresi dimulai dengan penyelarasan byte tertentu, relatif terhadap awal file. Memastikan penyelarasan pada batas 4-byte memberikan pengoptimalan kinerja saat diinstal pada perangkat. Ketika diselaraskan, sistem Android dapat membaca file dengan , bahkan jika mereka berisi data biner dengan batasan penyelarasan, daripada menyalin semua data dari paket. Manfaatnya adalah pengurangan jumlah RAM yang dikonsumsi oleh aplikasi yang sedang berjalan.
zipalign
mmap()
Alat ini disediakan dengan Android SDK, di dalam direktori. Untuk menyelaraskan APK yang ditandatangani, jalankan:
zipalign
tools/
$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
Bendera mengaktifkan output verbose (opsional). adalah perataan byte (jangan gunakan apa pun selain 4). Argumen file pertama adalah file yang Anda tanda tangani (input) dan file kedua adalah file tujuan (output). Jika Anda mengganti APK yang ada, tambahkan bendera.
-v
4
.apk
.apk
-f
Peringatan: APK input Anda harus ditandatangani dengan kunci pribadi Anda sebelum Anda mengoptimalkan paket dengan . Jika Anda menandatanganinya setelah menggunakan , itu akan membatalkan perataan.
zipalign
zipalign
Untuk informasi selengkapnya, baca tentang alat zipalign.
Mengkompilasi dan menandatangani dengan Eclipse ADT
Jika Anda menggunakan Eclipse dengan plugin ADT, Anda dapat menggunakan Wizard Ekspor untuk mengekspor APK yang ditandatangani (dan bahkan membuat keystore baru, jika perlu). Wizard Ekspor melakukan semua interaksi dengan Keytool dan Jarsigner untuk Anda, yang memungkinkan Anda untuk menandatangani paket menggunakan GUI alih-alih melakukan prosedur manual untuk mengkompilasi, menandatangani, dan menyelaraskan, seperti yang dibahas di atas. Setelah wizard mengkompilasi dan menandatangani paket Anda, wizard juga akan perfom penyelarasan paket dengan . Karena Wizard Ekspor menggunakan Keytool dan Jarsigner, Anda harus memastikan bahwa mereka dapat diakses di komputer Anda, seperti yang dijelaskan di atas dalam Pengaturan Dasar untuk Penandatanganan.
zipalign
Untuk membuat APK yang ditandatangani dan disejajarkan di Eclipse:
Pilih proyek di Penjelajah Paket dan pilih Ekspor > File.
Buka folder Android, pilih Ekspor Aplikasi Android, dan klik Berikutnya.
Wizard Ekspor Aplikasi Android sekarang dimulai, yang akan memandu Anda melalui proses penandatanganan aplikasi Anda, termasuk langkah-langkah untuk memilih kunci pribadi yang dapat digunakan untuk menandatangani APK (atau membuat keystore dan kunci pribadi baru).
Lengkapi Wizard Ekspor dan aplikasi Anda akan dikompilasi, ditandatangani, disejajarkan, dan siap untuk didistribusikan.

Mengamankan Kunci Pribadi Anda
 



 
Menjaga keamanan kunci pribadi Anda sangat penting, baik bagi Anda maupun pengguna. Jika Anda mengizinkan seseorang untuk menggunakan kunci Anda, atau jika Anda meninggalkan keystore dan kata sandi Anda di lokasi yang tidak aman sehingga pihak ketiga dapat menemukan dan menggunakannya, identitas penulisan Anda dan kepercayaan pengguna akan disusupi.
Jika pihak ketiga harus berhasil mengambil kunci Anda tanpa sepengetahuan atau izin Anda, orang tersebut dapat menandatangani dan mendistribusikan aplikasi yang secara jahat menggantikan aplikasi asli Anda atau merusaknya. Orang seperti itu juga dapat menandatangani dan mendistribusikan aplikasi di bawah identitas Anda yang menyerang aplikasi lain atau sistem itu sendiri, atau merusak atau mencuri data pengguna.
Reputasi Anda sebagai entitas developer bergantung pada pengamanan kunci pribadi Anda dengan benar, setiap saat, hingga kunci tersebut kedaluwarsa. Berikut adalah beberapa tips untuk menjaga kunci Anda tetap aman:
Pilih kata sandi yang kuat untuk keystore dan key.
Ketika Anda menghasilkan kunci Anda dengan Keytool, jangan menyediakan dan opsi di baris perintah. Jika Anda melakukannya, kata sandi Anda akan tersedia di riwayat shell Anda, yang dapat diakses oleh pengguna mana pun di komputer Anda.
-storepass
-keypass
Demikian pula, saat Signing aplikasi Android dengan Jarsigner, jangan berikan opsi dan opsi di baris perintah. 
-storepass
-keypass
Jangan memberikan atau meminjamkan kunci pribadi Anda kepada siapa pun, dan jangan biarkan orang yang tidak berwenang mengetahui keystore dan kata sandi kunci Anda.

Secara umum, jika Anda mengikuti tindakan pencegahan yang masuk akal saat membuat, menggunakan, dan menyimpan kunci Anda, itu akan tetap aman.
 
 
 
 
 

Komentar

Postingan populer dari blog ini

Bagaimana Cara Mengubah Level SDK API di Android Studio?