
android
鼾声鼾语
汽车行业研发,人工智能领域及汽车电气自动化工程师
展开
-
python打包android的app,出现 Could not load the Qt platform plugin “xcb“的解决方法
问题描述:pytorch代码调试过程出现:QObject::moveToThread: Current thread (0x1186a80) is not the object’s thread (0x272b130).Cannot move to target thread (0x1186a80)qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “/home/lzm/miniconda3/envs/torch1.0/lib/原创 2022-04-28 20:13:29 · 2443 阅读 · 0 评论 -
wait等待和超时处理
1,目前我这个需求是需要做超时处理的,所有需要用timer进行定时器,超时直接退出。Timer tt=new Timer();tt.schedule(new TimerTask() {public void run() {System.out.println(“超时”);timeOut=true; } },1000);//等待1s,数据发送完毕,如果没有则超时 while (flag){//如果这个服务的数据帧接收完毕,则不循环,进行下一个原创 2021-04-27 11:41:49 · 1269 阅读 · 0 评论 -
UDS的解包算法,网络层解包算法
测试代码:String str1="A55A2018DA10FA101862C88201050104"; String str2="A55A2018DA10FA21012C010082000005"; String str3="A55A2018DA10FA22B90000FA00012C06"; String str4="A55A2018DA10FA2364012C64FFFFFF07"; List<String> strList=new ArrayList(); str原创 2021-04-21 17:00:00 · 281 阅读 · 0 评论 -
自定义map的方法,能够实现了一个数据,对应多个字符,进行选择输出
测试代码: byte []bbbb=String2bits2("1111000011110000"); System.out.println(getStatus(bbbb));输出结果:EBC1_SA_00离线EBC2_SA_00离线EEC2_SA_00离线EEC2_SA_31离线EEC1_SA_00在线EEC1_SA_31在线TCO1_SA_EE在线TCO1_SA_17在线TSC1_SA_0B离线TSC1_SA_27离线TSC1_SA_2A离线TSC1_SA_31离原创 2021-04-21 16:56:44 · 156 阅读 · 0 评论 -
substring截取字符串说明endindex 结尾处索引(不包括)
substringpublic String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始, endIndex:到指定的 endIndex-1处结束。示例:“hamburger”.substring(3,8) returns “burge”“smiles”.substring(0,5) returns “smile”参数:beginIndex - 开始处的索引(包括)原创 2021-04-21 08:33:18 · 1118 阅读 · 0 评论 -
synchronized关键字修饰方法和变量
如果一个代码块被synchronized关键字修饰,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待直至占有锁的线程释放锁。事实上,占有锁的线程释放锁一般会是以下三种情况之一: 1:占有锁的线程执行完了该代码块,然后释放对锁的占有; 2:占有锁线程执行发生异常,此时JVM会让线程自动释放锁; 3:占有锁线程进入 WAITING 状态从而释放锁,例如在该线程中调用wait()方法等Synchronized修饰静态变量和普通变量的区别这里主要涉及到类对象(static方法),对原创 2021-04-13 11:06:21 · 3682 阅读 · 0 评论 -
接口是什么?核心思想:用抽象构建框架,用实现扩展细节
核心思想:用抽象构建框架,用实现扩展细节,我们举个例子来看,比如这里有个蛋糕,蛋糕有三个属性,编号,价格,口味那么我们可以定义一个接口,interface ICake(){public void getId();public void getValue();public void getTaste();}class SnowCake implements ICake{private Integer id; private String taste; private Do原创 2021-04-12 08:30:40 · 186 阅读 · 0 评论 -
一种特殊的多态的写法
1,场景如下,如果我要调用一个类中的属性,那么我们就需要进行,将该类传递过去,但是这个时候传递的是类,但是这个时候就只单纯传递的这个类,不能多态了,如果我们单纯用接口的话,那么接口也只是提供方法,不提供属性,也是获取不到的,但是如果用父类的话,会存在如果这个类本身是继承了父类的话,就没有办法用父类了,所以通常的做法是,继承父类,在实现接口,用接口传递,然后接口中有方法,通过这个方法来获取父类的属性值类1:public class TestFragment extends Fragment类2:publi原创 2021-03-30 16:02:52 · 134 阅读 · 0 评论 -
类的设计,类应该怎么设计?
突然最近在设计类的时候,有所感悟,但是肯定不全,记录以下。类的设计具有包含性,怎么体会这个点举个例子,比如我们在开发的时候要定义一些状态量去设置看这个类的变化,其实从其他角度来看,我们设计这个类的时候,是不是应该考虑类里有这个状态量,作为它的属性呢?比如:机票作废这个功能,,作废这个状态呢怎么去设计呢?普通工程师设计:人去作废机票。高级工程师设计:机票有作废的这个属性。后期会继续补充自己的心得。...原创 2021-03-29 23:13:53 · 679 阅读 · 0 评论 -
android和java实现uds的xml解析
1,xml文件,放的位置在Assets文件夹下,这个文件夹在main文件夹下<?xml version="1.0" encoding="utf-8"?><servicelist> <serviceisoft> <serviceName>10_DiagnosticSeesionControl</serviceName> <request>1003</request>原创 2021-03-29 16:06:11 · 415 阅读 · 0 评论 -
android 如何读取csv文件,路径如何设置?
使用InputStream is = getAssets().open(“mock_gps_data.csv”);读取csv文件,csv文件要放在手机哪里啊只能放到 app/assets文件夹下面,如果是手机内存里面的文件就不是getAssets(),直接用new FileInputStream(“文件地址”)这个是当前路径Environment.getExternalStorageDirectory().getPath()这个可以得到存储卡的根目录...原创 2021-03-26 08:49:56 · 1378 阅读 · 0 评论 -
liepal不能使用文件夹原有的数据库
原创 2021-03-01 17:24:08 · 111 阅读 · 0 评论 -
记一次出现的问题arraylist
在arrayList中添加对象,来更新出具出现的问题是在最后获取到的arrayList数据全部一样,原因是对象是通过参数传递进去来的,不管传递多少次,对象没有变化,所以添加到arraylist中,数据会被最后一个数据覆盖ArrayList arrayList=new ArrayList<>();public void addList(Model model){arrayList.add(model);}多次调用这个addList()方法会出现数据被最后一个数据覆盖。...原创 2021-02-26 16:57:44 · 108 阅读 · 0 评论 -
tp.cm和tp.dt报文说明,为什么计算的pgn不对,1939里的GPN如何计算,什么时候的报文没有目标地址。
ISO 11989只规定了CAN总线的物理层和链路层协议,在实际应用中,为保障不同厂家设备的兼容性,需要统一CAN总线的应用层协议。常见的应用层协议有:SAE J1939、CANOpen和DeviceNet。SAE J1939SAE J1939基于CAN2.0B,通信速率250kbit/s,最多可带30个设备,最大总线长度可达40 m,节点线最长1米。SAE J1939定义了29位Indentifier和数据域的使用方法。定义协议数据单元(PDU = Indentifier+数据域),PDU格式:原创 2021-02-19 18:49:11 · 2233 阅读 · 3 评论 -
接口对比电脑的理解
1,电脑理解为本类2,电脑的U口理解为要实现接口的内部类,其中包含回调函数3,U盘理解为外部需要调用的类,及其方法。原创 2021-02-18 09:16:41 · 123 阅读 · 0 评论 -
UDS中非常好用的超时的一个类future,暂时发现的,UDS超时如何处理的方法
目前为止暂时发现的一个future类,可以做任务超时,以下是一个案例:任务超时处理是比较常见的需求,比如在进行一些比较耗时的操作(如网络请求)或者在占用一些比较宝贵的资源(如数据库连接)时,我们通常需要给这些操作设置一个超时时间,当执行时长超过设置的阈值的时候,就终止操作并回收资源。Java中对超时任务的处理有两种方式:一种是基于异步任务结果的超时获取,一种则是使用延时任务来终止超时操作。下文将详细说明。一、基于异步任务结果的超时获取基于异步任务结果的获取通常是跟线程池一起使用的,我们向线程池提交任务原创 2021-02-17 15:15:06 · 1432 阅读 · 1 评论 -
从匿名内部类到接口回调
1,匿名内部类实现了一个回调接口,在实际开发过过程中,我们常常会遇到这样的情况,一个接口/类的方法的某个实现方式或者说对象,只在程序中执行一次,但为了使用它,我们需要创建它的实现类/子类去实现/重写,此时可以使用匿名内部类的方式,可以无需创建新的类,减少代码冗余。...原创 2021-02-10 10:08:57 · 317 阅读 · 0 评论 -
Service 与 Thread 的区别
很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下。1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。2). Service:Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如:onCreate,onSt原创 2021-02-03 08:42:31 · 583 阅读 · 0 评论 -
FragmentActivity和Activity的具体区别在哪里
fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。下面是API中的原话:FragmentActivity is a special activity provided in the Support Library to handle fragments on system v原创 2021-01-28 08:33:09 · 303 阅读 · 0 评论 -
matlab结合底层程序,生成hex程序文件
结合自己的工程,将matlab生成hex文件总结为以下三点:1,运行初始化工程2,运行模型3,运行配置工具生成的Hex在debug中原创 2021-01-22 17:10:00 · 1389 阅读 · 0 评论 -
接口的暴漏
面向接口设计bai 最大du的一个理由就是减少耦zhi合性。如果dao程序中的各个组件以接zhuan口而非具体的shu类相互衔接,那么对组件进行替换就轻而易举。这个特性可以使你简单的完成组件替换,而无需触及应用程序中的其他部分代码;当然,它还可以使得应用程序无需关心具体的组件实现而平滑运转。此的松耦合机制的最大好处,就是可以为测试提供更多的便捷。通过面向接口设计,我们可以用同一个接口的虚拟实现来替代真实实现,从而使得测试的灵活度得到提升低耦合,高内聚.好处:易于维护,可读性高,方便扩展,前人总结之经验原创 2021-01-07 16:16:36 · 344 阅读 · 0 评论 -
为什么需要内部类,这里做了很详细的解答
sun公司为什么要设计这个内部类呢?1,一般来说,内部类继承自某个类或者实现某个接口,内部类的代码操作创建它的外围类的对象。所以可以认为内部类提供了某种进入其他外围类的窗口。2,内部类必须要回答的一个问题是:a,如果只是需要一个接口的引用,为什么不通过外围类实现那个接口呢?答案是:“如果这能满足要求,那么就应该这样做。”那么内部类实现了一个接口与外围类实现这个接口有什么区别呢?b,那么内部类实现一个接口与外围类实现这个接口有什么区别呢?答案是:后者不是总能享用到接口带来的方便,有时需要用到接口的原创 2021-01-07 15:20:38 · 293 阅读 · 2 评论 -
java面向对象最新的理解
1,方法的理解:许多程序语言用函数这个术语来描述命名的子程序,而在java里却常用方法来表示:“做某些事情的方式”2,一切皆对象一切皆对象这句话要深入理解,一切事物都有自己的属性和方法,它就可以是一个对象,没有属性只有处理方法的类,我们可以把它当作方法类,最简单。3,接口接口确定了对某一特定对象所能发出的请求,只约束方法4,类如果一切都是对象,那么是什么决定了某一类对象的外观与行为呢?是什么确定了对象的类型?那就是class,class“我准备告诉你一种新类型的对象看来想什么样子”。。。.原创 2021-01-07 11:34:30 · 100 阅读 · 0 评论 -
对象方法的使用,回调的本质
回调的本质是自己不处理也也就是自己本身的对象引用不去直接调用方法,而是让另外一个对象的引用调用。这其中涉及到类方法的设计,主动式和被动式。小明看着教室外面撒欢儿的小伙伴,不禁悲从中来。再不出去玩,这个课间就要废了啊!!!! 看着小红再一次递上来的计算器,小明心生一计:让小红代劳。...原创 2021-01-04 14:19:09 · 482 阅读 · 0 评论 -
从c#到c语言开发的基本数据类型的映射关系
1,这里先不考虑电脑到底是32位,还是64位的直接进行替换然后试出来的,UINT32 和c的对应关系 unsigned intUINT16 和c的对应关系 unsigned shortUINT8 和c的对应关系 unsigned short ,测试后这里用unsigned char也是可以的,但是char一般是用作字符的,所以我这里选择还是用short吧。记住带U的定义,一定是需要unsigned的...原创 2020-12-28 15:34:29 · 407 阅读 · 2 评论 -
找不到so的问题,in thread “main“ java.lang.UnsatisfiedLinkError: no xxlibrary in java.library.path
Exception in thread “main” java.lang.UnsatisfiedLinkError: no SecurityAccessRTDlibrary in java.library.path以上的报错是因为我在windows平台,运行了基础so库一般应该直接运行的android平台,拿个手机或者pad用的,哎呀,大意了!知识1,System.out.println(System.getProperty(“java.library.path”))打印出java.library原创 2020-12-21 14:44:36 · 366 阅读 · 0 评论 -
Android 两种启动Service(远程)的方式:Bind 与Start的生命周期
Android 两种启动Service(远程)的方式:Bind 与Start前言:本文主要讨论启动远程Service。Service和Activity不在一个工程里面,也即不在一个App里面。不在一个进程里,所以会用到AIDL。Service的android:process属性未指定。一、startService1、通过调用startService启动服务的过程:onCreate —》onStartCommand —》onStartstartService 仅用于启动服务,如果Activity原创 2020-12-04 15:54:39 · 1604 阅读 · 0 评论 -
接口访问
最新理解,访问一个函数的方式,首先理解访问原理,访问有两种,一种是主动调用,调用函数的方法。第二种访问方式,是将自己传入,在被调用的时候,可以访问当前类的方法了,因为已经本身已经传入进去了。举例:小明,计算机接口方法老婆婆,计算机接口方法计算器计算机接口计算器(interface 需要计算){需要计算.计算机接口方法;}...原创 2020-12-02 10:59:56 · 576 阅读 · 0 评论 -
锁获取和锁释放的内存语义,线程同步块
我们接下来看看基于java内存抽象模型的Synchronized的内存语义。废话不多说依旧先上图。从上图可以看出,线程A会首先先从主内存中读取共享变量a=0的值然后将该变量拷贝到自己的本地内存,进行加一操作后,再将该值刷新到主内存,整个过程即为线程A 加锁–>执行临界区代码–>释放锁相对应的内存语义。线程B获取锁的时候同样会从主内存中共享变量a的值,这个时候就是最新的值1,然后将该值拷贝到线程B的工作内存中去,释放锁的时候同样会重写到主内存中。从整体上来看,线程A的执行结果(a=1)原创 2020-11-26 15:51:00 · 281 阅读 · 0 评论 -
android中文件选择器的库看了好几种,最后选择了materialfilepicker
按照步骤进行:步骤1:添加库repositories { jcenter()}dependencies { implementation 'com.nbsp:materialfilepicker:1.9.1'}步骤二,添加文件打开管理器代码更多打开方式可以进一步学习。private int REQUESTCODE_FROM_ACTIVITY=1; private void fileToHex() { new MaterialFilePicker()原创 2020-11-24 11:02:51 · 1647 阅读 · 2 评论 -
activity绑定Service,activity调用Service中的方法,Service实现接口回调
开启服务的时候,如果我们是通过bindService来绑定服务并且要向服务传递数据,可以直接在Intent中设置bundle来达到效果,但是如果是我们需要从服务中返回一些数据到Activity中的时候,实现起来就有各种各样的方法,比如说使用回调,使用广播等等,今天说的是使用回调的方法。新建一个工程,并编写一个服务:public class MyService extends Service { private boolean connecting = false; private Cal原创 2020-11-10 10:56:22 · 425 阅读 · 0 评论 -
Service实现后台动态更新数据到UI
具体请看代码:注释掉的就是没有用到的代码,业务逻辑可以按照文字注释去编辑package main.com.pwj.testmvpv1;import android.app.AlarmManager;import android.app.IntentService;import android.app.PendingIntent;import android.content.Intent;import android.content.Context;import android.os.Bind原创 2020-11-10 09:51:05 · 227 阅读 · 0 评论 -
GeenDao数据库框架自动生成函数的说明
1.DaoMasterDaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的Dao类。它具有静态方法来创建表或将他们删除。其内部类OpenHelper和DevOpenHelper是在SQLite数据库中创建模式的SQLiteOpenHelper实现。2.DaoSession管理特定模式的所有可用Dao对象,您可以使用其中一个getter方法获取。DaoSession还为实体提供了一些通用的持久性方法,如插入,加载,更新,刷新和删除。最后,DaoSession对象也跟踪一个身份原创 2020-11-06 11:00:40 · 171 阅读 · 0 评论 -
Could not find any version that matches com.android.support:appcompat-v7:29.+.
Could not find any version that matches com.android.support:appcompat-v7:29.+.原因1:官方自28之后就不在更新,所以没有29+的版本,所以导入依赖的时候,(至于是开发工具的哪部分负责导入依赖不清楚),找不到29版本的依赖下载,就出错。原因2:官方后边都是androidx了,如果象用compileSdkVersion 29targetSdkVersion 29那么依赖库用这个androidx,就没有问题,如: impleme原创 2020-11-02 17:02:10 · 531 阅读 · 0 评论 -
这个统一的方法,小红做成了一个接口,提供给大家,这个因为统一,就需要进行接口化
小红希望以后继续向班里的小朋友们提供计算服务,同时还能向老婆婆提供算账服务,甚至以后能够拓展其他人的业务,于是她向所有的顾客约定了一个办法,用于统一的处理,也就是自己需要的操作数和做完计算之后应该怎么做。这个统一的方法,小红做成了一个接口,提供给了大家,代码如下:public interface doJob { public void fillBlank(int a, int b, int result); }因为灵感来自帮小明填空,因此小红保留了初心,把所有业务都当做填空(fill原创 2020-11-02 14:16:18 · 805 阅读 · 0 评论 -
java接口回调理解之小红的计算器
https://www.cnblogs.com/heshuchao/p/5376298.html最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教!开始之前,先想象一个场景:幼稚园的小朋原创 2020-11-02 10:32:19 · 222 阅读 · 0 评论 -
第一次使用androidx,解决报错:More than one file was found with OS independent,‘META-INF/androidx..‘
提示错误为:More than one file was found with OS independent ‘META-INF/androidx.vectordrawable_vectordrawable.version’我做的工作,本身项目为androidx配置的项目,这个时候我添加了一个Activity和一个IntentService,就报告以上的错误,这个错误查阅各大网站没有得到解决,最后自己猜测是引包的原因,将自己的处理步骤整理如下:其中有前几个步骤可能不太影响,这里就不去测试了,但是也整理出来原创 2020-10-14 10:07:04 · 3190 阅读 · 0 评论 -
接口的个人理解,简单易懂
1,内部接口,在一个类中定义一个接口,那么这个类就可以通过这个接口去操作外部类的属性了和方法了。内部接口的精髓:(1)通过继承该类中的接口,并且传入继承接口的对象,可以实现安对该类属性的修改;(2)并且进行实现,可以对对象的属性直接进行修改预留接口是等着实现的类被调用,注意这里的被调用关系2,继承的接口,可以用作外部利用接口去随时替换引用,例如下的例子如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个原创 2020-10-13 09:09:37 · 530 阅读 · 0 评论 -
android连接wifi中的Socket通信的过程,ServerSocket和Socket的区别
ServerSocket:用于在本机(Server端)开一个端口,被动的等待数据(用accept()方法),与 Client 端端建立连接后可以进行数据交换;Socket:用于呼叫远端机器(Server端)上的一个端口,主动发出数据,建立连接后也可以接收数据。...原创 2020-09-17 15:35:02 · 588 阅读 · 0 评论 -
对于this和context的作用不是理解的很透彻
个人感觉this,指代当前对象,通常是传Activity对象;context是Activity的父类,都是带有相关上下文的意思,传context是因为一些系统库函数的方法需要挂载到相关控件上,比如Toast或者填充布局的布局填充器LayoutInflater也需要用到; LayoutInflater inflater = LayoutInflater.from(this);...原创 2020-09-16 14:26:18 · 849 阅读 · 0 评论