前言最近在AndroidAutomotive上遇到的一些问题,有好几个都跟Android车载操作系统上应用的驾驶模式有关,国内这方面的资料很少,自己在这里总结一下相关的知识,主要包含下面几个方面:AndroidAutomotive和AndroidAuto的区别AndroidAutomotive的驾驶模式介绍AndroidAutomotive实现驾驶模式的几种实现方式和代码示例,以及实现效果主要是还是想总结一下Android车载应用对Automotive驾驶模式(DriveMode)适...
继续阅读 >
分类:全部列表
2021
04-27
04-27
C#开发Windows窗体应用程序的简单操作步骤
使用C#开发应用程序时,一般包括创建项目、界面设计、设置属性、编写程序代码、保存项目、程序运行等6个步骤。1.创建项目在VisualStudio2017开发环境中选择“文件”→“新建”→“项目”菜单,弹出“新建项目”对话框,如图8.1所示。图8.1“新建项目”对话框选择“Windows窗体应用(.NETFramework)”、输入项目的名称、选择保存路径,然后单击“确定”按钮,即可创建一个Windows窗体应用程序。创建完成的Windows窗体应用程序如...
继续阅读 >
2021
04-27
04-27
Sqoop的安装与使用详细教程
本文我们介绍一个非常好用的数据传输工具——Sqoop。Sqoop是一款开源的工具,主要用于在Hadoop与传统数据库间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项...
继续阅读 >
2021
04-27
04-27
C++深拷贝与浅拷贝的区别及应用
浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间;深拷贝对指针指向的内容进行拷贝(重新分配内存),经深拷贝后的指针是指向不同地址的指针;因此浅拷贝释放内存的时候很容易出现因为释放两个指针而内存出错。浅拷贝(释放时,因为多次释放出错)只拷贝指针//拷贝构造函数Vector(constVector<T>&v):_start(nullptr),_finish(nullptr),_endOfStorage(nullptr){_start=v._start;_finish=v._finish;_endO...
继续阅读 >
2021
04-27
04-27
IDEA 错误 No main class specified的问题
1.排查错误运行出现错误或是2.情况AddConfigurations点击当Mainclass处为空时会出现Nomainclassspecified输入Main名会出现如下错误:选择目录为空或者为自带库:选择Project-java文件无法OK3.解决方法如下:文件所属文件夹JDK版本号对应版本号文件夹加\out子文件对应版本号选择Sources应用确定-------------分割线-------------之后按以下操作:修改为类名,应用确定错误消失,运行若为...
继续阅读 >
2021
04-27
04-27
redis配置文件中常用配置详解
此次安装的版本为:5.0.3[root@localhostlocal]#redis-server--versionRedisserverv=5.0.3sha=00000000:0malloc=jemalloc-5.1.0bits=64build=afabdecde61000c3打开redis.cofNETWORK#指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求bind127.0.0.1#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,...
继续阅读 >
2021
04-27
04-27
c++ vector模拟实现的全过程
一、vector是什么?vector是表示可变大小数组的序列容器,它也采用连续存储空间来存储元素,因此可以采用下标对vector的元素进行访问,它的大小是动态改变的,vector使用动态分配数组来存储它的元素;二、容器特性1.顺序序列顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素;2.动态数组支持对序列中的任意元素进行快速直接访问,甚至可以通过指针进行该操作。操供了在序列末尾相对快速地添加/删...
继续阅读 >
2021
04-27
04-27
Android studio案例之实现电话拨号
一、代码配置1、创建项目流程看图2、增添代码更改布局布局完整代码<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="verti...
继续阅读 >
2021
04-27
04-27
Mybatis基于xml配置实现单表的增删改查功能
Mybatis入门-基于配置实现单表的增删改查Mybatis简介官网链接:https://mybatis.org/mybatis-3/zh/index.html。更加详细的信息可以去官网查看。MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数据库中...
继续阅读 >
2021
04-27
04-27
入门java的第一步HelloWorld
踏过JDK开发环境安装这所大门,我们正式走进了Java的世界。Java是一门面向对象的编程语言,不仅吸收了c++语言的各种有点,还摒弃了c++里难以理解的多继承,指针等概念,因此它具有功能强大和简单易用两个特征,它的语法比c/c++都更加简单,它最大的优点就是可移植性很高,一次编写,到处执行,今天我们就来练习一下Java入行的第一段代码。publicclassHelloWorld{//HelloWorld叫做类名publicstaticvoidmain(String[]arg...
继续阅读 >
2021
04-27
04-27
python实现简单反弹球游戏
python简单游戏-反弹球,供大家参考,具体内容如下tkinter实现,直接贴上代码fromtkinterimport*importtimeimportrandomclassBall:def__init__(self,canvas,paddle,color):self.canvas=canvasself.paddle=paddleself.id=canvas.create_oval(10,10,25,25,fill=color)self.canvas.move(self.id,245,100)starts=[-3,-2,-1,1,2,3]random.shuffle(starts)se...
继续阅读 >
2021
04-27
04-27
手把手教你写一个spring IOC容器的方法
本文分享自华为云社区《手把手教你写一个springIOC容器》,原文作者:技术火炬手。spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制。今天就带大家手写一个springIOC容器。第0步(准备工作):(1)JDK1.8及java环境变量(2)maven包及maven环境变量(3)idea第1步(创建项目,引入tomcat包)PS:由于该项目的...
继续阅读 >
2021
04-27
04-27
C# 列表List的常用属性和方法介绍
1.创建列表(列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型)//创建列表//方法一List<int>intList=newList<int>();//创建了一个空的列表通过类型后面的<>来表示这个列表存储的数据的类型//方法二varintlist1=newList<string>();//方法三varintlist2=newList<int>(){1,2,3};//创建了一个列表,里面的初始值...
继续阅读 >
2021
04-27
04-27
mysql的MVCC多版本并发控制的实现
1什么是MVCCMVCC全称是:Multiversionconcurrencycontrol,多版本并发控制,提供并发访问数据库时,对事务内读取的到的内存做处理,用来避免写操作堵塞读操作的并发问题。举个例子,程序员A正在读数据库中某些内容,而程序员B正在给这些内容做修改(假设是在一个事务内修改,大概持续10s左右),A在这10s内则可能看到一个不一致的数据,在B没有提交前,如何让A能够一直读到的数据都是一致的呢?有几种处理方法,第一种:基于...
继续阅读 >
1.创建SpringBoot项目1.1引入依赖pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.b...
继续阅读 >
2021
04-27
04-27
Java常用工具类库——Hutool的使用简介
前言Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间...
继续阅读 >
2021
04-27
04-27
Java8函数式接口的基础学习教程
函数式接口1.1函数式接口概述函数式接口:有且仅有一个抽象方法的接口Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以使用与Lambda使用的接口只有确保接口只能够有且只有一个抽象方法,Lambda才能顺利的进行推导检测接口是不是函数式接口:@FunctionalInterface放在接口定义的上方:如果接口是函数式接口,编译通过,反之失败。注意:我们自己定义函数式接口的时候,@FunctionalInterface是可选的,...
继续阅读 >
2021
04-27
04-27
C# 实现在控制台上换行输出与不换行输出
换行输出用:Console.WriteLine不换行输出用:Console.Write代码如下//在控制台上打印HelloWorld!Console.WriteLine("HelloWorld!");//换行打印Console.Write("hello");//不换行打印Console.Write("--");Console.Write("world");Console.ReadKey();//ReadKey()运行完结果不退出控制台运行结果图补充:使用console在控制台打印如何不输出最后的换行(aardio)在用aardio软件进行编辑时,使用console在控制台打...
继续阅读 >
2021
04-27
04-27
php7中停止php-fpm服务的方法详解
在PHP生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口。在PHP的源码中,当需要调用服务器相关信息时,全部通过SAPI接口中对应的方法调用实现php-fpm+nginxphp+terminal...PHP常见的四种运行模式SAPI(ServerApplicationProgrammingInterface)服务器应用程序编程接口,即PHP与其他应用交互的接口.每个SAPI实现都是一个_sapi_module_struct...
继续阅读 >
2021
04-27
04-27
全面解析Android系统指纹启动流程
本章主要整理Android指纹启动流程,侧重于hal和framework部分。一.从Android系统启动流程看指纹启动流程下图图片出处 →第一阶段BootROM,Android设备上电后,首先会从处理器片上ROM的启动引导代码开始执行,片上ROM会寻找Bootloader代码,并加载到内存。主要就是上电让系统启动。第二阶段Bootloader开始执行,首先负责完成硬件的初始化,然后找到Linux内核代码,并加载到内存。启动过程中,bootloader(默认是bootabl...
继续阅读 >
2021
04-27
04-27
SpringBoot策略模式的实践使用
前言在实际业务代码中,我们经常会碰到这样的代码:Stringtype=actualService.getRealtype(uid);if(type.equals("typeA")){//dofuncA}elseif(type.equals("typeB")){//dofuncB}elseif(type.equals("typeC")){//dofuncC}else[//...}这种if-else或者switch-case代码在每个分支都会判断分支类型,然后执行不同的方法获取结果,当代码分支比较少并且确定不会增加时,使用这种方式也是完全ok的,但...
继续阅读 >
2021
04-27
04-27
c#使用EPPlus封装excel表格导入功能的问题
前言最近做系统的时候有很多excel导入的功能,以前我前后端都做的时候是在前端解析,然后再做个批量插入的接口我觉着这样挺好的,后端部分可以做的很简单(很偷懒的)但是因为各种各样的原因,最终还是需要做个专门的excel导入接口遇到的问题由于之前从来没有在后端部分处理过表格,所以我选择看一下同事的代码是怎么写的虽然我之前没写过相关的业务,但是直觉的认为这样写非常麻烦,那个ExcelHelper好像也没干什么事,我希望...
继续阅读 >
2021
04-27
04-27
JS实现判断对象是否为空对象的5种方法
1.将json对象转化为json字符串,再判断该字符串是否为"{}"vardata={};varb=(JSON.stringify(data)=="{}");alert(b);//true2.forin循环判断varobj={};varb=function(){for(varkeyinobj){returnfalse;}returntrue;}alert(b());//true3.jquery的isEmptyObject方法此方法是jquery将2方法(forin)进行封装,使用时需要依赖jqueryvardata={};varb=$.isEmptyObject(data);alert(b);//tr...
继续阅读 >
2021
04-27
04-27
基于Unity Line Renderer组件的常用属性说明
LineRenderer(线条渲染器)这个组件可以在场景中渲染出"线",比如说:做出手枪瞄准敌人时有红外线的射击辅助线,可以用LineRenderer来完成不过这个组件对新手还是有些不友好的,看到下面的属性就头大,不过掌握了基本用法之后就没什么难度了,下面讲解一下属性(我用的Unity是2018.3.8版)首先看一下Positions属性这是画线的核心俩点(或多个点)连一线,一个物体只能带有一个LineRenderer组件,一个LineRenderer组件只能渲染一条连续的线Size...
继续阅读 >