Orang ramai tidak suka apl ranap, terutamanya apabila ia perlahan atau membeku selama beberapa saat. Menurut tinjauan oleh Penyelidikan Dimensi, 61% pengguna menjangkakan program dilancarkan dalam masa 4 saat dan 49% menjangkakan input akan bertindak balas dalam masa 2 saat. Jika apl ranap, pegun atau melaporkan ralat, 53% pengguna akan menyahpasang apl itu.
Sama ada anda menyasarkan pengguna atau perniagaan, isu ranap sistem boleh mematikannya sepenuhnya. Saya bercakap dengan beberapa pembangun mudah alih dan bertanya kepada mereka apakah isu ranap sistem yang paling biasa mereka hadapi, dan mereka memberikan enam sebab biasa:
1. Pengurusan Memori
Saya Semua orang yang anda tanya akan bercakap tentang ingatan pengurusan, dan kebanyakan apl akan memulakan banyak utas yang menggunakan memori sistem. Sachin Agarwal, naib presiden pemasaran di OpsClarity, berkata bahawa pengaturcara boleh menulis kod seolah-olah aplikasi yang mereka tulis adalah satu-satunya dalam aplikasi Pada masa yang sama, beliau mencadangkan bahawa semasa menulis program, mereka harus mempertimbangkan untuk menjadi "warganegara yang baik dalam ekosistem aplikasi." .
Isu memori tidak sama untuk semua pembangun. "Dalam iOS, anda boleh memanfaatkan Objective-C untuk mengendalikan isu memori yang besar," kata Andrew Whiting, naib presiden pembangunan perniagaan di Solstice Mobile. Tetapi kebaikan dan keburukan perlu ditimbang. "Pada Android, anda memerlukan kawalan yang lebih mendalam ke atas [memori] dan anda boleh membuatnya melakukan apa yang anda mahu, tetapi itu menambahkan kerumitan." berkaitan dengan perkara seperti memuatkan imej besar atau memproses peta bit," kata Jonathan Karon, pengurus kejuruteraan perisian kanan di New Relic. Punca masalah biasa disusun dalam Laporan Prestasi Teknikal SDK Mudah Alih. "Sebenarnya terdapat sejumlah yang mengejutkan tentang apa yang kelihatan seperti isu pemaut pada Android, di mana kelas tidak dapat ditemui, atau terdapat pengecualian yang dipanggil pautan tidak dikelaskan, sebaliknya, sering dipengaruhi oleh pengecualian NSInternalInconsistency, This adalah kerana apabila pembangun menukar tatasusunan atau koleksi data di satu tempat, manakala sesuatu yang lain sedang membaca senarai perkara di sana.
2. Kitaran hayat perisian
Proses pembangunan aplikasi berulang dan versi yang kerap dikeluarkan membuka pintu untuk produk berdaya maju minimum untuk memasuki pasaran dan kemudian memperbaikinya dari semasa ke semasa, Amalan ini adalah sangat popular sekarang. Walau bagaimanapun, kitaran hayat perisian tradisional telah menjadi lebih rumit kerana pergantungannya pada sistem pengendalian dan API pihak ketiga.
"Jika anda melihat kemas kini Android terkini, terdapat banyak ranap aplikasi," kata Agarwal. "Sistem pengendalian itu sendiri tidak stabil atau sistem pengendalian telah dikemas kini, tetapi aplikasi belum dikemas kini" atau pengguna tidak memuat turun versi baharu "Anda tidak mempunyai kawalan ke atas ini. Ia menggambarkan proses pembangunan teras."
Mudah Alih dan Pertumbuhan pengkomputeran awan telah meningkatkan penggunaan perkhidmatan pihak ketiga dan API berkaitannya, yang menjimatkan masa dan membantu membawa aplikasi ke pasaran dengan lebih pantas, tetapi ia datang dengan set masalah mereka sendiri. "Banyak perpustakaan mempunyai masalah biasa," kata Whiting. "Mereka cuba menyelesaikan masalah semua orang dan bukannya menyediakan penyelesaian terbaik untuk sesiapa sahaja. Contohnya, API tertentu mungkin mempunyai had prestasi untuk aplikasi tertentu. API juga mungkin menggunakan teknik rumit, seperti pelarasan kaedah iOS. Apabila kod asal (seperti API Apple) tidak tersedia, pembangun membuat pengubahsuaian berdasarkan kod asal (seperti API Apple). "Anda boleh memanggilnya sebagai salah satu 'seni gelap' pembangunan aplikasi iOS," kata Raman Bhatia, ketua mudah alih di Fareportal, sebuah agensi pelancongan dalam talian. "[Tetapi] jika kod aplikasi anda ditulis dengan cara tertentu, ia boleh menyebabkan ranap sistem." API boleh menyebabkan masalah lain juga. "Latensi API, kadar ralat, lebar jalur data, versi API dan bilangan permintaan API semuanya boleh membawa kepada masalah besar daripada isu kecil," kata Agarwal. Kemudian terdapat API itu sendiri, yang memerlukan alat khusus untuk menjejaki segala-galanya. API juga boleh menyebabkan masalah lain seperti ralat ingatan. "Jika anda mencipta objek yang telah dialih keluar daripada ingatan sebelum mencipta objek lain, ini biasanya tiada masalah, tetapi sedar bahawa anda tidak tahu sama ada objek berikutnya perlu merujuk objek yang dipadamkan "Terutama apabila anda membawa masuk rangka kerja pihak ketiga, masalah timbul Anda tidak pasti apa yang mereka bersihkan dan apa yang mereka cipta," kata pengasas bersama dan pembangun Long Le. 3. Pengujian bukanlah keperluan untuk ujian yang mencukupi adalah jelas, tetapi mendapatkan liputan yang mencukupi, terutamanya dengan bilangan versi dan peranti Android yang banyak, boleh menjadi mencabar. Walaupun terdapat emulator, had prestasi perisian yang dijalankan pada pelayan mungkin berbeza daripada yang terdapat pada mesin sebenar. Sebagai contoh, jika satu utas aplikasi sedang membaca pangkalan data manakala utas kedua cuba mengubah suai pangkalan data yang sama, "ia adalah soal masa," kata Wayne Carter, ketua arkitek mudah alih di Couchbase. "Sekiranya mereka tidak bertembung pada masa yang sama, maka masalah ini tidak akan timbul dan boleh ditutup dengan perihalan log selalunya tidak berkelakuan sama seperti yang sebenar." Menjalankan sistem yang berbeza pada peranti berbeza ialah penyelesaian yang boleh dilaksanakan, tetapi kaedah ini lebih mahal daripada emulator. Ini memerlukan keseimbangan antara bajet dan keperluanPengujian harus menggabungkan penanda aras piawaian industri dan jangkaan pengguna untuk memastikan kandungan boleh diterima oleh pembangun dan pengguna. Ujian juga harus berterusan. Pantau prestasi dan cari maklum balas pengguna, kemudian selesaikan isu secepat mungkin.
4. Pengurusan Rangkaian
Apabila aplikasi semakin bergantung pada rangkaian, sama ada untuk data atau perkhidmatan pihak ketiga, pengurusan rangkaian telah menjadi punca masalah.
Sebab utama ranap sistem ialah apabila anda akan mendapatkan data, menyerahkan sesuatu dan menunggu pemulihan, dan APP bertindak balas atau mati. Naib Presiden Operasi Pravin Vazirani berkata bahawa pembangun mungkin menjadikan fungsi sambungan Wi-Fi sangat sempurna, tetapi masalah akan berlaku apabila pengguna berada di kawasan rangkaian yang buruk
Cara yang baik untuk menangani masalah rangkaian adalah dengan memaklumkan pengguna bahawa sambungan terputus , dan jika boleh memberi peluang untuk melaksanakan operasi lain yang mungkin menarik minat. Jika orang memahami punca keadaan sementara yang berada di luar kawalan aplikasi, mereka lebih cenderung untuk bertenang dan tidak menjadi jengkel dengan perisian tersebut.
5 Keadaan ralat dan pengendalian pengecualian
Disebabkan kerumitan pembangunan mudah alih, beberapa ralat tidak dapat dielakkan, sama ada perubahan API yang tidak dijangka, mengelakkan masalah memori yang dikesan sebelum ini atau situasi sambungan rangkaian, atau malah hanya memperlahankan pemindahan data apabila memindahkan fail besar seperti imej atau video
Dalam kes ini, pendekatan terbaik ialah memberikan pengendalian ralat dan pengecualian yang baik. Sebagai contoh, jika pengguna memasukkan data yang salah, atau menyediakan teks ke dalam kotak teks apabila nilai berangka perlu diberikan, aplikasi tidak akan cuba secara tidak sengaja dan melaporkan ralat.
Dalam mana-mana kes ini, aplikasi yang dikodkan dengan betul akan melihat perkara yang tidak dijangka dan dengan anggun menamatkan proses atau aktiviti sambil memberitahu pengguna tentang ralat. Jika anda boleh memastikan talian komunikasi terbuka, anda akan mempunyai peluang yang lebih baik untuk mengekalkan pengguna.
6. Terlalu banyak kod
Nasihat terbaik ialah memastikan aplikasi anda mudah. Cari pemalam untuk tujuan tertentu, gunakan pemalam dan tulis kod yang diperlukan. "Kod terbaik dan paling bebas pepijat ialah kod yang anda tidak tulis sendiri," kata Felipe Laso-Marsetti, jurutera sistem kanan di Lextech Global Services, sebuah syarikat pembangunan mudah alih perusahaan
Atas ialah kandungan terperinci Apakah 6 sebab biasa mengapa apl ranap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!