Android NDK之二:創建NativeActivity


轉:http://blog.csdn.net/xiruanliuwei/article/details/7560914

Android NDK為我們提供了兩種方式來實現我們的native activity:

    1、The native_activity.h header defines the native version of the NativeActivity class. It

    contains the callback interface and data structures that you need to create your native

    activity. Because the main thread of your application handles the callbacks, your callback

    implementations must not be blocking. If they block, you might receive ANR (Application Not

    Responding) errors because your main thread will be unresponsive until the callback returns.

    Read the comments in the 

    <ndk_root>/platforms/android-9/arch-arm/usr/include/android/native_activity.h file for

    more information.

    

    2、The android_native_app_glue.h file defines a static helper library built on top of the

    native_activity.h interface. It spawns another thread to handle things such as callbacks or

    input events. This prevents any callbacks from blocking your main thread and adds some

    flexibility in how you implement the callbacks, so you might find this programming model a

    bit easier to implement. 

   The <ndk_root>/sources/android/native_app_glue/android_native_app_glue.c

    source is also available to you, so you can modify the implementation if you need. Read the

    comments in the <ndk_root>/sources/android/native_app_glue/android_native_app_glue.h  

    file for more information.


    通過上面的描述,我們可以發現方式二會簡單一些。在使用方式一實現native activity時,

需要注意在實現回調函數時,不要阻塞了main UI thread,否則會出現ANR。而方式二中,

則在一個新線程中創建一個事件循環執行回調函數,因此不會造成main UI thread阻塞。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM