Telephony. Messaging. Sending sms messages programmatically
Download 0.56 Mb. Pdf ko'rish
|
Ma ruza-14
- Bu sahifa navigatsiya:
- Android NDK
- Java Native Interface
SDK ва NDK Google компонияси Android амалиёт тизими учун дастурлар ишлаб чиқишда SDK (Software Development kit) ва NDK (Native development kit)ни таклиф қилади. SDK бўйича кўплаб мақолалар, китоблар топиш мумкин. Google томонидан йўриқнома хам ишлаб чиқилган. NDK бўйича хатто Googleнинг ўзида хам кам маълумотлар берилган. NDK бўйича яхши китоблардан бири Cinar O. — Pro Android C++ with the NDK – 2012 . Ушбу мавзуда NDK билан танишиб чиқамиз. Android NDK нима? Android NDK (native development kit) – бу инструментал воситалар тўплами бўлиб, дастурнинг маълум бир қисмини С/С++ каби тилларда ишлаб чиқишга имкон беради. NDK нима учун керак? Google NDK дан фақат хос холларда фойдаланишни маслахат беради Тезликни ошириш (масалан, катта маълумотларни саралаш); С/С++ да ёзилган функциялардан фойдаланиш. Масалан, OpenGL; Қуйи даражали дастурлашда (масалан, хар хил драйверлар ёзиш, ёки қурилмаларни бошқаришда); Android Software Development Kit (Android SDK) Android Native Development Kit (Android NDK) JNI нима? Java Native Interface – С/С++ ёки Assemblerда ёзилган кодни Java виртуал машинаси бошқаруви остида ишга тушириш учун стандарт механизм. Бу ерда функциялар динамик холда ишлаб чиқилади. Бу ўз навбатида С/С++ да тузилган функцияни Java чақириш имконини беради ва аксинча. Преимущества JNI Основное преимущество перед аналогами (Netscape Java Runtime Interface или Microsoft’s Raw Native Interface and COM/Java Interface) является то что JNI изначально разрабатывался для обеспечения двоичной совместимости, для совместимости приложений, написанных на JNI, для любых виртуальных машин Java на конкретной платформе (когда я говорю о JNI, то я не привязываюсь к Dalvik машине, потому как JNI был написан Oracle для JVM который подходит для всех Java виртуальных машин). Поэтому скомпилированный код на С/С++ будет выполнятся в не зависимости от платформы. Более ранние версии не позволяли реализовывать двоичную совместимость. Двоичная совместимость или же бинарная совместимость – вид совместимости программ, позволяющий программе работать в различных средах без изменения её исполняемых файлов. Локальные и глобальные ссылки JNI делит ссылки на три типа: локальные, глобальные и слабые глобальные ссылки. Локальные действительны пока не завершиться метод. Все Java объекты которые возвращает функции JNI являются локальными. Программист должен надеется на то что VM сама подчистит все локальные ссылки. Локальные ссылки доступны лишь в том потоке в котором были созданы. Однако если есть необходимость то их можно освобождать сразу методом JNI интерфейса DeleteLocalRef: jclass clazz; clazz = (*env)->FindClass(env, "java/lang/String"); //ваш код (*env)->DeleteLocalRef(env, clazz); Глобальные ссылки остаются пока они явно не будут освобождены. Что бы зарегистрировать глобальную ссылку следует вызвать метод NewGlobalRef. Если же глобальная ссылка уже не нужна, то её можно удалить методом DeleteGlobalRef: jclass localClazz; jclass globalClazz; localClazz = (*env)->FindClass(env, "java/lang/String"); globalClazz = (*env)->NewGlobalRef(env, localClazz); //ваш код (*env)->DeleteLocalRef(env, localClazz); Обработка ошибок JNI не проверяет ошибки такие как NullPointerException, IllegalArgumentException. Причины: снижение производительности; в большинстве функций C библиотек очень и очень трудно защитится от ошибок. JNI позволяет использовать Java Exception. Большинство JNI функций возвращают код ошибок а не сам Exception, и поэтому приходится обрабатывать сам код, а в Java уже выбрасывать Exception. В JNI следует проверять код ошибки вызываемых функций и после них следует вызвать ExceptionOccurred(), которая в свою очередь возвращает объект ошибки: jthrowable ExceptionOccurred(JNIEnv *env); Фойдаланилган адабиётлар Beginning Android TM 4 Application Development”, by Wei- Meng Lee, printed at Radha Offset, Delhi in 2013, pages – 533. Chapter-10. Networking “Android TM Application Development Cookbook”, by Wei- Meng Lee, printed at Sharda Offset Press, Delhi in 2013, Chapter-6. Network programming http://www.tutorialspoint.com/android/android_netwo rk_connection.htm http://www.tutorialspoint.com/android/android_json_p arser.htm Download 0.56 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling