Apl Segera Android 101: apakah itu dan bagaimana ia berfungsi

Aplikasi Segera Android adalah cara baru yang hebat untuk menggunakan aplikasi asli tanpa pemasangan sebelumnya. Hanya bahagian aplikasi yang dimuat turun dan dilancarkan, memberi pengguna penampilan dan nuansa asli dalam beberapa saat.

Bagaimana mereka berfungsi?

Pertama sekali, jangan mengelirukan mereka dengan Aplikasi Web Progresif di mana ikon pelancar membuka aplikasi web melalui penyemak imbas Chrome. Aplikasi Segera sebenarnya akan dipasang di telefon anda, tetapi tanpa perlu mencarinya di Play Store.

URL Web akan memicu Google Play Store di telefon anda dan hanya mengambil bahagian aplikasi yang dikaitkan dengan URL yang diminta. Aplikasi selebihnya tidak dimuat turun. Dengan cara ini pengguna dapat dengan cepat menikmati pengalaman asli aplikasi Android anda.

Apa latar belakangnya?

Anda perlu membahagikan projek Android anda kepada beberapa modul. Salah satunya adalah modul asas dengan kod penting yang digunakan dalam semua modul lain (sambungan API, pangkalan data, pilihan bersama dll). Yang lain, modul ciri, mengandungi fungsi dan aktiviti tertentu yang dapat diakses melalui URL yang berkaitan.

Katakan anda mempunyai aplikasi web dengan senarai produk dan satu halaman produk. Sebagai contoh, anda boleh memautkan //example.domain/products untuk melancarkan ProductListActivity dan //example.domain/products/12 untuk melancarkan ProductActivity.

Untuk menjadikannya mudah diakses sebagai aktiviti aplikasi segera, mereka perlu dimasukkan ke dalam modul fitur individu dan mereka harus mempunyai Pautan Aplikasi yang berkaitan yang ditentukan dalam manifes modul mereka. Kami akan memanggilnya modul senarai Produk dan Produk.

Sekarang, apabila pengguna cuba membuka //example.domain/products/12 , kedua-dua modul Product dan Base akan mula dimuat turun dan ProductActivity akan dilancarkan.

Apa itu pautan aplikasi dan bagaimana ia ditentukan?

Anda mungkin pernah mendengar pautan dalam. Mereka ditentukan dalam manifes aplikasi, dan mereka akan didaftarkan ke OS. Ketika pengguna cuba membuka pautan tersebut, OS akan meminta pengguna untuk memilih antara membuka pautan di penyemak imbas web atau di aplikasi Anda. Namun, ini tidak mencukupi untuk aplikasi Segera, anda perlu melangkah lebih jauh - Pautan Aplikasi. Anda perlu memasukkan harta autoVerify = "true" .

Aplikasi anda akan mengesahkan sama ada pautan yang anda nyatakan benar-benar berkaitan dengan domain anda. Untuk ini, anda perlu memasukkan fail asetlinks.json ke dalam folder root domain berikut:

//example.domain/.well-known/assetlinks.json.

Juga, perhatikan hartanah android: order = ”100 ″ . Ini sebenarnya menjadi keutamaan dalam kes ini. Sekiranya anda mempunyai senarai produk dan produk tunggal yang sesuai dengan jalur yang sama (/ produk dan / produk / 10) , aktiviti produk tunggal akan dilancarkan jika terdapat id selepas jalur / produk . Sekiranya tidak, aktiviti senarai produk dilancarkan.

Sangat penting untuk menentukan perkara ini. Sekiranya terdapat dua aktiviti yang sesuai dengan jalan yang sama, Play Store tidak akan mengetahui bahagian aplikasi mana yang harus diambil.

Kaitkan aplikasi anda dengan domain anda

The assetlinks.json perlu mengandungi hash kedai kunci SHA256 anda. Medan hubungan ditetapkan ke nilai lalai di bawah, dan objek sasaran harus diisi dengan data khusus aplikasi dan hash SHA256 anda dari kedai kunci.

[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints":["00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00"] } }]

Apabila autoVerify = true melakukan keajaibannya, semua Pautan Aplikasi yang berkaitan akan melancarkan aplikasi anda secara langsung. Sekiranya anda tidak memasang aplikasinya, aplikasi segera akan dimuat turun.

Inilah contoh aplikasi demo yang kami buat baru-baru ini. Apabila diklik pada pautan yang berkaitan, skrin seperti ini terbuka dan menawarkan untuk menggunakan aplikasi segera sebagai gantinya. Perhatikan seberapa cepat aplikasi dibuka, dan di Oreo ia lebih pantas.

Bagaimana Mendefinisikan Modul Instan Android?

Untuk aplikasi segera, projek anda akan terdiri daripada sekurang-kurangnya tiga modul yang berbeza. Anda perlu menggunakan Android Studio 3.0 untuk ini. Sekiranya anda membuat aplikasi anda dari awal, ada pilihan untuk mengaktifkan sokongan aplikasi Segera untuk projek anda.

Semua modul berikut akan dimulakan secara automatik. Sekiranya anda mengubahsuai aplikasi lama, anda perlu memecah modul aplikasi lama menjadi modul asas tunggal dan beberapa modul ciri. Anda juga perlu membuat Aplikasi dan modul aplikasi Instan, yang akan anda gunakan untuk membina APK aplikasi biasa dan segera.

Modul Aplikasi

Pertama, anda mesti membuat modul aplikasi yang menentukan kebergantungan untuk semua modul lain (modul asas + ciri). Dalam fail build.gradle modul ini, anda perlu menentukan yang berikut:

apply plugin: 'com.android.application' ...
dependencies { implementation project(':product') implementation project(':productlist') implementation project(':base') }

Modul Asas

Dalam modul ini, anda akan menentukan pernyataan kebergantungan berikut. Juga, pastikan pemalam 'com.android.feature' digunakan di sini.

apply plugin: 'com.android.feature' android { baseFeature true ... } 
dependencies { api 'com.android.support:appcompat-v7:26.0.1' api 'com.android.support.constraint:constraint-layout:1.0.2' implementation 'com.google.firebase:firebase-appindexing:11.0.4' application project(':app') feature project(':product') feature project(':productlist') }

Perhatikan bahawa di sini, penyataan kompilasi menjadi pernyataan API untuk kebergantungan biasa yang kami gunakan sebelumnya. Projek aplikasi dan projek ciri ditentukan secara berasingan.

Modul Ciri

Modul ini akan mempunyai tetapan berikut, juga dengan plugin com.android.feature digunakan.

apply plugin: 'com.android.feature' ... dependencies { implementation project(':base') ... }

Anda perlu menyatakan modul mana yang menjadi asas anda dan sertakan dengan penyataan projek pelaksanaan. Seterusnya, anda boleh memasukkan kebergantungan yang hanya diperlukan untuk modul khusus ini. Sebagai contoh, jika anda menggunakan perpustakaan animasi yang tidak digunakan di mana-mana modul lain.

Modul Aplikasi Segera

Akhirnya, sekarang ada plugin com.android.instantapp yang akan disertakan dalam fail build.gradle untuk modul instantapp.

apply plugin: 'com.android.instantapp' dependencies { implementation project(':product') implementation project(':productlist') implementation project(':base') }

Dalam modul ini, kami akan menentukan modul mana yang akan dibina sebagai aplikasi segera. Hasil pembuatan modul instapp adalah fail zip dengan APK aplikasi segera yang boleh anda muat naik secara berasingan ke Google Play Store di pengurus pelepasan Aplikasi Segera Android. APK ini dikendalikan sama seperti yang biasa, mereka mempunyai sejarah peluncuran dan versi mereka sendiri.

Itu sahaja! Cukup mudah untuk mula mengembangkan Aplikasi Instan Android. Tetapi, selalu ada tetapi!

Apakah cabaran Aplikasi Instan Android?

First of all, the Instant Apps are not enabled by default for now. If you want to try it, you need to check your phone settings under Google account and enable the Instant Apps setting.

Next, we found that it’s extremely important to specify app links data in the following format:

 ...   

Both http and https schemes need to be defined as shown in this code snippet. Any other way would cause a link verification failure and the app wouldn’t be linked properly.

Also, there is a recommendation to include the following code snippet into one of the activities in your app manifest. This annotates which activity should be launched in case the Instant app is launched from the Settings or a system launcher.

The official documentation states that the Google Search would offer Instant app annotation by default (small thunder icon), but we had problems with it. For our demo app, this was not the case. Google Search results didn’t annotate our demo links as Instant apps and the links led to the web page. Only if we tried to open the associated link from another app, like Gmail, the whole instant app process was triggered and the instant app was launched. Have you encountered any similar problems?

Conclusion

When first announced two years ago, I was very enthusiastic about Android Instant Apps. They respond to the problem of users having to search for the apps on the Store and wait till they’re downloaded to start using them. Web apps are much more accessible in that regard and the ease of discovery is much better.

Instant apps come really close to filling this gap between web and native mobile apps. They already act very well and I think that they will become more popular with time. The main problems we encountered was a rather small community and the lack of proper documentation, but the situation on that matter is also getting better.

We would love to hear from you if you’ve tried using them or had any challenges implementing them!

Originally published at www.bornfight.com.