2015-10-18 42 views
3

我正在移植已經用C++編寫的應用程序,以便在需要在Android設備上運行的Linux上運行。這是一個GPU密集型應用程序,它使OpenCL調用運行一組測試。這些可能需要幾個小時或幾天才能完成。如何防止在我的android jni調用中停止代碼?

我有一個Java Activity讀取一些基本輸入,然後將其傳遞給JNI。

對於較短的操作它運行正常,但超過幾秒會暫停;我可以解除它的暫停,並且它會繼續運行,但是它每隔一百次左右就會嚴重掛起(花費一分鐘時間應該不到一秒)。

有什麼我缺乏的Android知識,我忽略了一些關鍵的謬誤,可能會導致這種?將所有代碼移到NativeActivity會更有意義嗎?或者我只需要撥打回Java來每隔一段時間就顯示一些內容,以防止操作系統將我關閉?

感謝任誰有耐心回答我的問題

回答

1

在Android上,這是沒有CPU密集型長時間操作應該在UI線程上運行一個強大的規則。無論是切換到NativeActivity還是回調顯示都不會有幫助,但是如果您在工作線程上運行測試,我可能會更新屏幕以便用戶隨時跟蹤整體進度。

相關問題