2011-03-18 14 views
7

Java koduna yüklediğim iki kitaplığım (.so) var. Ancak, Java (Aktivite) < -> C++ (.sosyası) çağrıları gerektiren birkaç özel işlem vardır.Yerel Etkinlik nasıl kullanılır? Geleneksel etkinlikle birleştirilebilir mi?

Bu işlevselliklerin bir bölümünü uygulamak için Yerel Etkinliği kullanabilir miyim? Yerli etkinlik, geleneksel faaliyetlere ek olan veya seçmek zorunda olduğum bir şey mi, hangi tür etkinlikleri kullanacağım?

[DÜZ] native activity

robot-ndk/kaynakları/robot/native_app_glue/android_native_app_glue.h

ile yerli kod ele alınabilir bir dizi olay vardır

Kodumun bir parçasının (belirli bir olaydan sonra çağrılması gereken) C++ ile yazıldığını bildiğimden beri, daha iyi olacağını düşünüyorum. bunu C++ 'da yerel Aktivite ile işlemek için. Ancak, Java'daki tanıtıcı olaylardan sonra çağrılması gereken bir kod da var.

soru ... bazı etkinliklerimi ve geleneksel java arabirimini aynı anda bu etkinliğe yardımcı olacak etkinliğimin yerel sürümünü (yerel arabirim) kullanabilir miyim?

+0

@noisy'yi Anladığım kadarıyla, "İki yerel kitaplık yükleyemiyorsunuz" sorununu çözüyor muyum? – 100rabh

cevap

3

Bir yanıtın iki sürüm koduna sahip olamazsınız.

  • Bunu açıklamanızda nasıl tanımlarsınız? Google tarafından sağlanan örnekte

  • , ana ait açıklama oldukça açıktır:

diğer şeyler giriş etkinliklerini alınması ve yapmak için kendi olay döngü ile, kendi iş parçacığı çalışır Yerel etkinlik, döngüdeki while(1) {...} döngüsündeki tüm olayları ele alır.

Java ve yerel etkinliği karıştırmak mümkün olmayacaktır. Yerel bir etkinlik kullanmanın temel nedeni, kullanıcı arabirimidir. IMHO, yerel bir etkinlik kullanmanın temel nedenidir. C++ 'da tamamen işlevsel bir kullanıcı arayüzüne sahipseniz, bu durumda sizin ve daha taşınabilir bir yerel etkinlik kullanmanız daha kolaydır. Hala android için diğer java-aktivite eklemek uygulamanızı özelleştirebilirsiniz (manifestinizde android:hasCode="TRUE"'u koymayı unutmayın!). Diğer bir durumda, bir java etkinliğini kullanmak, google UI'yi tam olarak kullanmanıza ve gerektiğinde yerel kitaplığınızı aramanıza olanak tanır. Hakkınızda

performans soru, sen derken: http://developer.android.com/guide/practices/design/performance.html#native_methods

:

Ben bakmak yerli Aktivite

yoluyla C++ bu kontrol etmenin daha iyi olacağını düşünüyorum Bu yardımcı olur umarım!

İlgili konular