- 博客(14)
- 收藏
- 关注
原创 JNI子线程中调用Activity中的方法
如果不涉及多线程,可以通过JNIEnv*获取jclass与jmethodID并通过CallMethod直接调用Java方法。但是,在子线程中,由于JNIEnv是线程相关的,无法获取到jclass jmethod等问题,很容易导致程序崩溃(还是那种一大坨、看不懂的红字...)。因此,需要借助“进程”相关地JavaVM全局地获取JNIEnv实现调用Java方法。思路:1.构造全局的J...
2019-05-24 18:12:42 1128 2
原创 fwrite写入字节数与实际不符,解决:刷新缓冲区
遇到这样一个情况:以二进制形式打开文件,循环中每次fwrite写入固定字节,但每次实际写入字节数与fwrite参数都不一样,有多有少,但是!循环完后总的字节数是一致的。于是打开google搜索,大多是说不以二进制打开的情况下会产生多余字节,自动添加\n等,显然与我的情况不符。进一步搜索,问题得到了解决:C库函数写文件通过缓冲区,所以产生每次fwrite字节数不一的情...
2019-04-28 21:37:40 5758
原创 Android RecyclerView用法
1.导入v7包。app下gradle文件加入implementation 'com.android.support:recyclerview-v7:28.0.0'注意版本号应与v7包相同。2.创建Adapter。创建自定义Adapter,定义内部类ViewHolder继承自RecyclerView.ViewHolder,static class ViewHolder e...
2019-02-17 14:30:31 216
原创 如何解决WARNING: ABIs [armeabi-v7a,armeabi] set by 'android.injected.build.abi' gradle flag contained 'A
在app:build.gradle中添加:externalNativeBuild { cmake { cppFlags "" arguments "-DANDROID_STL=c++_shared" }}
2018-12-31 16:44:48 9925 2
原创 Android Studio:跑过的项目突然出bug,没经过任何改变。
遇到这种玄学bug或者build没问题,run出问题有时只要close项目再打开一次就可以解决不知道为啥。。。
2018-12-31 16:34:40 289
原创 Android NDK添加NEON以及cpufeatures支持
本人使用Android studio3.0进行NDK开发,由于Android develop官网文档是针对2.2版本以下,这里为2.2以上版本的cmakelist配置做以下纪录:一、添加NEON支持:在build.gradle(app)中添加:externalNativeBuild { cmake { cppFlags "" arguments...
2018-12-13 16:35:51 1892 4
原创 NDK/JNI调用java静态方法(多参数)
1.在java类中声明静态方法:public static void showLog(String string, int frame , int model) {...}2.在cpp中获取java类及方法ID:jclass clazz = env->FindClass("com/../.../.../MainActivity");jmethodID id = env-&g...
2018-11-24 16:07:39 999
原创 NDK开发armeabi下字节对齐问题
本人使用Android studio进行NDK开发,模拟器测试没问题,真机测试出现bug:Fatal signal 7 (SIGBUS), code 1, fault addr 0x86a16861 in tid 18277 (Thread-3484)原因:默认字节对齐方式下访问float指针会引发此错误,模拟器是x86,而真机是arm。解决办法:手动设置字节对齐方式#pragm...
2018-11-24 13:27:56 1234
原创 Android动态申请SDcard权限
Android6.0后必须使用动态申请SDcard权限,否则会抛出"java.io.FileNotFoundException"异常。try { //检测是否有写的权限 int permission = ActivityCompat.checkSelfPermission(this, "android.permission.WRITE_EXTERNAL...
2018-11-17 11:06:26 2032
原创 Android NDK/JNI cmake开发入门教程
本人使用Android Studio3.0进行JNI开发,在Android Studio2.2之前都是使用Android.mk进行开发,Android Studio2.2及以上采用更加简便的NDK + Cmake + Cmakelist.txt开发。一、首先新建Android Studio项目,勾选C++支持选项,Android Studio会自动构建好JNI HelloWorld项目及其目录...
2018-11-15 17:40:32 184
原创 解决Android studio编译大文件,狂占内存、卡爆的问题
本人使用Android studio3.1进行NDK/JNI开发,遇到编译一个11.4M的巨大.h文件(储存一个5万行的数组),编译器默认1024M内存,完全不够用,编译后狂战内存直至卡爆。解决方法:调整Android studio内存设置Help -> Edit Custom VM Options-Xms1024m-Xmx8192m-XX:ReservedCodeCach...
2018-11-15 13:50:21 3403
原创 Python3 opencv环境配置
本人使用Anaconda创建python=3.6的环境,安装opencv库:进入Anaconda终端:pip install opencv_python显示:(cv) C:\Users\Echo>pip install opencv_pythonCollecting opencv_python Downloading https://files.pythonhosted.o...
2018-11-14 19:36:06 652
转载 Adnroid进阶:Handler、Looper、Message、MessageQueue基础流程分析
转自:https://github.com/francistao/LearningNotes/blob/master/Part1/Android/%E7%BA%BF%E7%A8%8B%E9%80%9A%E4%BF%A1%E5%9F%BA%E7%A1%80%E6%B5%81%E7%A8%8B%E5%88%86%E6%9E%90.mdLooper(先分析这个是因为能够引出四者的关系) 在Loo...
2018-09-12 20:08:25 127
转载 Android进阶:内存泄漏
Android进阶:内存泄漏转载自:https://github.com/francistao/LearningNotes/blob/master/Part1/Android一、什么是Java中的内存泄露在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象...
2018-09-12 19:58:25 125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人