- 博客(753)
- 资源 (13)
- 收藏
- 关注
原创 javac javap java的使用
比如写好了一个test.java文件,使用javac test.java编译会出来test.class字节码文件,再用java test就能看到程序执行的结果。而用javap -v test.class可以分析程序编译后的字节码的详细内容。期间遇到一个报错“错误: 找不到或无法加载主类”,java后面给出包名和类名,之间用“.”分割,不能是像java test.class这样带有.class后缀就会出现以上报错。用这三个命令行工具也能编译,分析,运行java程序。
2023-11-21 00:45:57
27
原创 我的南京 保存图片 找不到
如题,“我的南京”是一款城市办事的APP,通过它可以查询到各类信息后保存图片,发现在“文件管理”中找不到。琢磨了一番,没想到是由于应用的读写存储空间权限关了导致的,这样图片保存不了。但APP报的提示却是“图片已保存至XXXX.PNG”,这就很具有误导性了,应该报的提示为“保存图片失败,请打开存储空间权限”这样的。打开改应用的存储空间权限后,就能正常保存图片了,用USB的“图片传输”就能看到手机的DCIM和Pictures目录,图片保存在Pictures目录下。
2023-11-20 23:36:52
20
转载 JNI的三种引用
函数返回后,局部引用所引用的对象(如果Java层没有对返回的局部引用使用)会被JVM自动释放,或调用DeleteLocalRef释放。实际上,每当线程从Java环境切换到本地代码上下文时(J2N),JVM会分配一块内存,创建一个局部引用表,这个表用来存放本次本地方法执行中创建的所有的局部引用。调用NewWeakGlobalRef基于局部引用或全局引用创建,不会阻止GC回收所引用的对象,可以跨方法、跨线程使用。1、JNI会将创建的局部引用都存储在一个局部引用表中,该局部引用表的最大数量是512。
2023-11-15 01:57:34
26
转载 E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
在使用vi编辑一个需要sudo权限的文件后,保存的时候出现这样的错误。这个时候很多人做的事情可能就是不保存退出(敲命令:q!如果恰巧修改了很多文件的内容,这时候无法保存是件多么扫兴的事情!二. 使用":w!sudo tee %"指令也可,该命令主要作用是:即使没有权限也能稳妥地保存正在编辑的文件。2.而tee则是可以将数据重定向到文件上,简单来说就是把stdin缓冲区的内容重定向到文件上。1.“w”的含义简单来说就是把 文件 的内容传入stdin缓冲区中。一. 如果有root权限,使用":wq!
2023-11-15 01:41:03
180
转载 JNI调用c/c++,env->和(*env)->是有区别的
ps: jni代码,如果.c文件中用 “env->” 编译会找不到此结构,必须用“(*env)->”,或者改成.cpp文件,以 c++的方式来编译。想不起来jni中的env调用方法还有两种写法。如果是c程序,要用 (*env)->如果是C++要用 env->
2023-11-12 23:09:01
33
原创 Android中asset和raw的区别详解
注意1:Google的Android系统处理Asset有个bug,在AssetManager中不能处理单个超过1MB的文件,不然会报异常,raw没这个限制可以放个4MB的Mp3文件没问题。注意2:assets 文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像 xml, java 文件被预编译,可以存放一些图片,html,js, css 等文件。1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;
2023-11-06 00:24:00
69
转载 UTF-8有BOM和无BOM的区别
字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出(因为在COOKIE送出前PHP已经送出了文件头),也就是说,凡是不能够在执行之前进行输出的代码都将无效。在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符。
2023-11-06 00:08:44
34
转载 AndroidManifest.xml文件简介
每个应用项目必须在的根目录中加入文件(且必须使用此名称)。清单文件会向 Android 构建工具、Android 操作系统和 Google Play 描述应用的基本信息。如果您使用构建应用,则系统会为您创建清单文件,并在您构建应用时(尤其是在使用时)添加大部分基本清单元素。
2023-11-05 23:50:42
62
转载 Android.mk使用简介(以PREBUILT_SHARED_LIBRARY和BUILD_SHARED_LIBRARY扩展描述)
用来指定一个预先已经编译好的动态库,与BUILD_SAHRED_LIBRARY和BUILD_STATIC_LIBRARY不同,该模块对应的LOCAL_SRC_FILES不能是源文件,而只能是一个已经编译好的的动态库的路径,如foo/libfoo.so。该变量指向一个构建脚本并收集所有通过LOCAL_XXX变量指定的关于当前模块的信息,并根据你所列出的源文件构建一个动态库(.so)使用该变量前,你应该至少定义了LOCAL_MODULE和LOCAL_SRC_FILES。包含了构建该模块的源文件列表。
2023-10-30 00:20:49
119
原创 A TextureView or a subclass can only be used with hardware acceleration enabled.
这样编译的apk被认为是使用的版本号很低,就会出现一系列问题,还会出现弹框提示“此应用专为旧版Android打造,可能无法正常运行。所以需要删除AndroidManifest.xml中的SDK版本号指定而改为在build.gradle中指定SDK版本号。onSurfaceTextureAvailable无法被调用,getSurfaceTexture返回的也是null。android:targetSdkVersion="SDK版本号" />琢磨了半天,才意识到是项目迁移时指定的sdk版本问题导致的。
2023-10-27 10:53:31
40
原创 编译pycaffe过程中遇到的问题及解决
首先要安装好boost开发包,ubuntu下通过sudo apt-get install libboost-all-dev安装,结果装上了1.71.0版本,但这个版本在/usr/lib/x86_64-linux-gnu/目录下没有libboost_python.so,这就导致了上面的错误。这是由于caffe的代码中用到了boost,通过编译boost可以产生供python调用的so库,就需要编译出libboost_python.so,这个so库是成功编译pycaffe的关键。再敲./b2 -j 8编译。
2023-10-23 02:05:06
436
原创 git diff 文件时遇到“\ No newline at end of file”提示
出现这个提示的原因是用vi编辑文件后保存,会在文件末尾追加一个新行字符'\n'。由于原来的文件末尾没有新行字符,这样git diff 文件就会出现这样的提示。如果不想出现这样的提示,可以这么做:在vi打开文件后,执行。
2023-10-22 03:16:59
94
原创 Key GNUSTL_STATIC is missing in the map.
externalNativeBuild下的cmake下的arguments选项里多了'-DANDROID_STL=gnustl_static',把这个去掉,编译就能成功了。可能是目前的ndk版本已经不支持老版本ndk中的某些宏定义所导致的。编译旧的Android工程时,出现如题的错误。这是由于build.gradle中的。
2023-10-17 19:46:12
71
原创 从图像到纹理的GL函数
glTexImage2D这个GL函数可以实现把一幅图像转化为GL的纹理,从而可以在此基础上运用GPU做图像的显示和处理。此外,还有一个GL函数glTexSubImage2D可以实现对纹理中的图像进行局部更新。Android中有一个java工具类GLUtils也实现了同样的功能两个函数,只不过函数名称不一样,分别为texImage2D和texSubImage2D。当然在Android中也可以使用SDK封装的GL函数glTexImage2D和glTexSubImage2D。
2023-10-17 11:57:28
33
原创 python 2.7.18安装jupyter遇到的一个错误
这个错误的直接原因是setup.py脚本语法有问题,应该是python版本不匹配导致的。解决方法是强制安装低版本的qtconsole,安装命令为“sudo pip install qtconsole==4.7.7”。如遇其他错误,通常也是版本不匹配导致的,尝试安装一个更低的版本即可解决。
2023-10-12 01:39:12
178
原创 pwd -P的作用
举个例子,你创建了一个指向某个目录的符号链接,cd进去这个目录,使用pwd打印出来的当前这个符号链接所表示的目录,符号链接只是为了访问起来方便且更易记,而使用pwd -P打印出来的就是真实的物理路径。比如安卓手机的/sdcard目录就是一个符号链接,使用pwd -P打印出来的目录通常是/storage/emulated/0。pwd默认是获取当前工作目录,而pwd -P是打印当前的物理路径,不带有任何的符号链接。
2023-10-05 20:30:01
111
原创 解决caffe中的python环境安装的问题(补充)
根据提示,知道是google-apputils没有安装,于是安装"sudo python -m pip install google-apputils",安装完之后,再执行命令"sudo python -m pip install -r requirements.txt"没有出现错误,大功告成!
2023-10-05 01:13:17
510
原创 解决caffe中的python环境安装的问题
而在安装python的各种包时,也不能用命令"sudo pip install 包名"安装,这样只会为python3安装相应的包。而应该用"sudo python -m pip install 包名",以安装wheel为例,使用命令"sudo python -m pip install wheel"进行安装。搞定pip的安装后,就可以进入到"/caffe/python"目录下,使用命令"sudo python -m pip install -r requirements.txt"安装一堆依赖包了。
2023-10-03 13:13:39
276
转载 AD各种文件格式
IntLib:.是Protel DXP文件的模板文件格式,既集成了原理图,也集成了PCB封装。.SchLib:是Protel DXP文件的图纸文件格式,只集成了原理图,没有集成PCB封装。.PCBLib:是Protel DXP文件的标准文件格式,只集成了PCB封装,没有集成原理图。将.LibPkg文件编译之后,其output文件夹会自动生成.IntLib文件。一、库文件:.SchLib & .PCBLib $ .IntLib 的区别。.IntLib:元器件集成库文件。.LibPkg:集成库工程文件。
2023-09-25 01:24:37
303
原创 git stash命令的用法
在Git中,stash命令是最常用的命令之一。它可以在你提交之前,暂时地保存你的工作现场,并将其记录在Git的堆栈中。当你再次回来完成该工作时,你可以简单地弹出该堆栈,并重新开始未完成的工作。
2023-09-08 09:59:08
604
原创 caffe下载预训练的CaffeNet模型遇到的问题
一开始移位没有安装yaml,于是使用pip安装,结果提示已经安装了yaml,原来啊,是因为caffe用的是python2,而我的ubuntu下安装的已经是python3了,于是用了命令“sudo apt install python2.7”竟然给安装成功了。
2023-08-03 01:34:58
230
转载 如何在控制台窗口中打印表格
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。
2023-07-19 02:34:52
152
1
转载 安卓如何为应用签名?
Android 系统要求所有 APK 必须先使用证书进行数字签名,然后才能安装到设备上或进行更新。使用格式发布应用时,需要先使用上传密钥为 app bundle 签名,然后才能将其上传到 Play 管理中心,其余操作则由 Play 应用签名功能完成。对于在 Play 商店或其他商店中使用 APK 分发的应用,必须为 APK 手动签名才能上传。
2023-07-13 23:36:33
217
转载 合规检测—安卓移除第三方包中申请的权限
我们在引用第三方库的时候,第三方内部可能申请了一些非必要权限,合规检测时候会排查出来,第三方库有的我们不能修改,所以想要移除这个非必要权限需要以下方法。原文链接:https://blog.csdn.net/qq_26530191/article/details/126366724。在manifest文件中添加如下代码,移除非必要的权限,tools:node=“remove”
2023-07-13 23:28:33
246
原创 java中判断String内容为空的一个错误写法
答案是:这样写是有问题的。举个反例,如果 s = new String("");的话,这里就会判断错误。这里的==只是比较对象的引用,而非其内容。今天在其他的博客里看到这个是作者推荐的一种判断String为空的写法,觉得有点误人子弟了,所以在此做个笔记矫正一下,以免日后踩坑。问题:已知s为一个String对象,现要判断其是否为空,下面的写法是否可行?
2023-07-05 01:21:48
164
转载 Ubuntu20.04编译Caffe时,fatal error:hdf5.h:没有那个文件或目录
由于caffe官方文件有更新,位置改了,所以改写原文记录下来。
2023-06-05 23:33:01
162
转载 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP
MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP这几种协议都已被广泛应用,并且每种协议都有至少10种以上的代码实现,都宣称支持实时的发布/订阅的物联网协议,但是在具体物联网系统架构设计时,需考虑实际场景的通信需求,选择合适的协议。在服务策略的帮助下,DDS能够有效地控制和管理网络带宽、内存空间等资源的使用,同时也能控制数据的可靠性、实时性和数据的生存时间,通过灵活使用这些服务质量策略,DDS不仅能在窄带的无线环境上,也能在宽带的有线通信环境上开发出满足实时性需求的数据分发系统。
2023-05-12 01:31:39
576
1
原创 对md5sum程序的修改
linux下自带md5sum工具,可以对文件计算md5值,但这个命令行工具不能直接对字符串求md5,而对一个字符串求md5是一个比较有用的需求,比如计算签名。于是对源码md5sum.c修改了一番,可以通过命令行计算字符串的md5值了,比如输入:md5sum admin或者md5sum "admin"如果把要计算md5的字符串存到txt文件里,再对文件计算md5值,往往会得不到正确的结果,因为vi或者gedit会在保存文件的时候多加一个换行符。下面贴出源码,希望能帮到有需要这个的人。
2023-05-05 00:12:09
152
原创 gl的矩阵模式及其相应的矩阵变换函数
我们操作矩阵的变换函数是要在对应的矩阵模式下才起作用。通过以上的矩阵模式设置函数将当前要操作的矩阵选中。设置正交投影和透视投影的参数。其中gluPerspective的实现是基于。以Android的GL10为例,说明一下矩阵模式及其相应的矩阵变换函数。调用矩阵变换函数之前,通常还要重置当前的矩阵为单位矩阵。分别是平移,旋转,缩放,视图变换。
2023-05-01 23:51:42
620
原创 禁用小米手机系统应用的方法
所幸提供了这个命令“pm list packages”,而使用“am monitor”或者“dumpsys window w |grep \/ |grep name=”也能找到包名。有时候我们想要删除对我们无用的已安装的应用,长按应用图标,进行卸载即可。但这个只对非系统应用有效,如果是系统内建的应用,就无法卸载,这是很令人恼火的。但通过pm命令可以禁用它,禁用后在launcher里面就看不见了,如果想要恢复显示也可以使用命令进行恢复。禁用命令:pm disable-user com.miui.video。
2023-05-01 03:06:46
1225
原创 向量的点乘,叉乘的意义及作用
其物理意义为力在位移沿力的方向所作的功,几何意义就是一个向量往另一个向量轴上投影后的长度与另一个向量长度的乘积。其作用是通过点积判断两个向量的夹角大小,这个范围是。经过的角度是否大于180度,这个正是耳切法中用来判断这两个向量作为边的三角形是多边形的凸还是凹的部分。向量叉乘可以用来计算三角形的面积,为上述平行四边形面积的一半。,二者相差一个负号,表示方向相反。向量叉乘可以用来计算平行四边形的面积。如果假定单位向量始终为正面的法线方向,则。向量的叉乘不符合交换律,即。,大拇指所指向的方向即。
2023-05-01 02:09:13
1593
转载 Layout软件Altium、Cadence、Mentor对比
同时软件的逻辑和AD有较大的区别,很多刚转过来的同学会觉得很不适应。由于大多数学生在学校接触到的软件就是AD(或者更老的版本,比如Protel),这些人在毕业之后很容易就将AD带入到工作中,成就了AD在国内Layout软件最大的市场占有率。同时对于全球市场来说Cadence和Mentor才是主流,因此众多仿真软件都会专门兼容这两者的设计文件,而不需要通过ODB++来中转,这个优势是AD所不具备的。除此之外还有很多小众的Layout软件,比如什么什么在线画板之类的,这类软件功能有限,使用得不多,就不再讨论。
2023-04-01 07:42:17
2805
原创 如何用Cygwin编译ffplay
Cygwin编译ffplay,必须要用到SDL依赖库,ffmpeg较新的版本,都用到SDL2,而老的版本可能还会用到SDL,不过不用担心,从Cygwin的安装程序在线安装相应的包即可。类似于上面安装SDL2的过程,依次搜索x11,xorg,xinit把相应的包都下载安装了,也就接近成功了。装完之后,从开始菜单里运行XWin Server,这个位于Cygwin-X目录下,打开它,它会缩到桌面右下角的小图标中。但这种设置同样需要在每次打开cmd的时候执行一下,比较麻烦,可以在环境变量里面设置一下,一劳永逸。
2023-03-23 02:03:02
165
原创 Makefile中的$(1)是什么
最近本人在研究ffmpeg的编译系统Makefile时,看到里面有一个$(1)的变量,一时没明白是什么,总觉得有点似曾相识,这和shell脚本中的$0、$1、$2很像,是传递的参数?经过一番琢磨,终于明白这是Makefile中定义的函数的参数传递形式。Linux工程的编译要用到make工具,平台不一样,只是工具链不同,但Makefile是编译系统的关键所在,因此掌握Makefile的编写规则是非常重要的。这里面调用了定义的DOFFTOOL函数,$(1)是函数的第一个参数,$(2)是其第二个参数,依此类推,
2023-03-17 01:11:51
1657
原创 笔记本电脑如何开启wifi热点共享
这需要你的笔记本能使用有线上网,即带有RJ45接口,现在很多笔记本都不带了,所幸我的这款DELL笔记本还带有这种接口,所以就很方便了。2.在Windows设置里有个“网络和Internet”,点进去有个“移动热点”,选择“共享我的以下Internet连接”下拉框中的网络名称,再将“与其他设备共享我的Internet连接”这个打开。最近新拉了电信宽带,结果安装时给的猫都不带无线功能,要另外购买路由器,不想购买,到货也没那么快,有个闲置的路由器又不在身边。看官,如果你遇到了同样的麻烦,我给你支个招,亲测有效。
2023-03-11 23:48:46
2653
原创 unity各版本下载地址
下载某一具体版本,再到打开的网页里去找,可以单独安装,也可以通过unity hub安装。下载其他版本,将2022改为相应的年份。下载2022的版本,
2023-02-27 14:33:29
335
转载 CAN总线标准接口与布线规范
在这里不得不说,同我接触的很多CAN总线的工程师,都会忽略这个电缆选型和终端电阻匹配问题,对于电缆选型很多工程师好像是对线缆的重视程度还不够,一般选择平行线缆带屏蔽的线缆,虽然带屏蔽了,但是CAN_H和CAN_L平行布线并不能很好的抑制共模干扰,导致总线传输总是偶发一些错误帧,导致数据重发,占用总线资源和其它数据传输,造成关键数据传输延迟,对研发工程师造成了极大的困扰,导致项目延迟;其次就是终端电阻对总线的影响,不能只记着120欧的终端电阻,也应该根据不同长度和电缆的选择合理配。
2023-02-26 22:41:18
3930
转载 Linux下的I2S驱动学习
snd_soc_register_dais函数显示为每个snd_soc_dai实例分配内存,确定dai的名字,用snd_soc_dai_driver实例的字段对它进行必要初始化,最后把该dai链接到全局链表dai_list中。2.在对应的platform_driver中的probe回调中通过API:snd_soc_register_dai或者snd_soc_register_dais,注册snd_soc_dai实例;LRCK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。
2023-02-26 22:15:16
941
转载 Unity初识项目结构与面板
Unity中的一个项目是有若干个场景组成的,每一个场景又是由若干个游戏对象组成的,每一个游戏对象身上有若干个组件,每一个组件有若干个属性。b、Project面板和项目文件夹中的Assets文件夹完全相通。项目——>场景——>游戏对象——>组件——>属性。c、将所有的游戏对象以层级的方式列举出来。a、管理一个项目中用到的所有的资源文件。b、用来管理层级中的所有游戏对象。b、显示一个游戏对象身上的组件。c、列出场景中所有的游戏对象。c、由场景中的摄像机拍摄到的。一、Unity的项目结构。c、显示组件中的属性。
2023-02-26 21:27:01
508
DPM算法源码在windows下matlab中使用的修改版
2017-09-09
Cohen-Sutherland直线段的裁剪算法 直线段的裁剪算法
2017-02-24
protobuf-2.6.1.tar.bz2
2016-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人