我试图使用AAssetManager从Android apk访问资产.但是,我继续得到"未定义的AAssetManager_fromJava引用",即使我已经包含了asset_manager.h和asset_manager_jni.h.也可以不引用asset_manager.h中的其他函数,如AAssetManager_openDir(mgr,"")等.
这是完整的代码
#define EXPORT_API
#include <string.h>
#include <jni.h>
#include <android\log.h>
#include <sys\types.h>
#include <android\asset_manager.h>
#include <android\asset_manager_jni.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "com.devin - native", __VA_ARGS__)
JNIEnv* env=0;
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* pvt){
LOGD("JNI_OnLoad() called");
vm->AttachCurrentThread(&env, 0);
return JNI_VERSION_1_2;
}
EXPORT_API void LoadAsset(char* filename, jobject assetManager){
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
/* More stuff */
}
#ifdef __cplusplus
};
#endif
Run Code Online (Sandbox Code Playgroud)
此代码位于.cpp文件中,并使用NDK R8进行编译.我在这里做了什么非常错的事吗?
我有一个tf.data.Dataset(r1.4),其元素表示一个时间序列。例如(换行符分隔单独的元素):
1
2
3
4
5
6
7
8
9
现在,我要在其上运行窗口操作,以便获得长度为WINDOW_SIZE的子序列的数据集,以训练RNN。例如,对于WINDOW_SIZE = 4:
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
Run Code Online (Sandbox Code Playgroud)
我可以找到的最接近的数据集op是tf.contrib.data.group_by_window,但是不确定如何在此用例中应用它。
另一种方法是使用tf.contrib.data.batch_and_drop_remainder,但它将元素划分为存储桶,并且不会包含所有子序列。
我想到的第三个选项是创建WINDOW_SIZE迭代器,并分别运行它们,使其指向连续的元素,然后按顺序开始使用它们。但是,这看上去与直觉相反。
我已经从http://gitorious.org/irrlichtandroid/编译了一个Android端口Irrlicht,并制作了一个应用程序来加载一个lo res SkyBox.但是,我得到了不可预测的帧速率.在模拟器上,fps永远不会超过5.在带有eclair的DELL XCD35上,它通常不会超过10 fps,但是,在大约10次启动中,应用程序以60 fps运行良好.活动配置为全屏横向模式.
以下是代码,我省略了类头文件以保持帖子简短.
BlueStoneActivity.java
public class BlueStoneActivity extends Activity {
static {
System.loadLibrary("irrlicht");
System.loadLibrary("bluestone");
}
GLSurfaceView glView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
glView=new GLSurfaceView(this);
glView.setRenderer(new IrrlichtRenderer(this));
setContentView(glView);
Debug.startMethodTracing("bstone");
nativeOnCreate();
}
@Override
protected void onDestroy() {
nativeOnDestroy();
super.onDestroy();
Debug.stopMethodTracing();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
public native void nativeOnCreate();
public native void nativeOnDestroy();
public native void nativeOnPause();
public native void nativeOnResume(); …Run Code Online (Sandbox Code Playgroud)