自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 git冲突解决

先使用git status命令查看文件状态,了解自己修改了哪些文件。1、git status然后使用git pull 命令更新代码,这个时候不是同一个文件的修改就会自动合并冲突。若是一个文件的修改,则会显示文件存在冲突2、git pull将所有有冲突的文件中自己的修改的部分,剪切出来,存储到一个临时的文件中。然后使用(如果这个时候你使用git status命令来查看,会有很有不是你修改的文件也会显示出来,其实就是上一个人对本git库的修改。当后面把有冲突的修改回退掉之后,再次git pull

2021-01-05 16:06:24 209

原创 Android版本编译错误-build stopped: subcommand failed. 解决方法

在build_log中搜索关键字failed,找到靠近强制停止的那一处failed,然后找到对应目录执行git pull如果显示成功,不报错,那么重新编译即可,若失败,则使用git status//查看本地有那些文件改动git diff xxxxx(文件名)//查看文件改了什么确定不是自己更改的,那么执行回退命令git checkout xxxx(文件名)//回退修改重新编译即可。笔者是使用第二种方式。...

2020-12-22 19:15:55 2965 2

原创 蓝牙扫描流程

/android/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothPairingDetail.java: public void onBluetoothStateChanged(int bluetoothState) { updateContent(bluetoothState); }void updateContent(int bluetoothState) { case BluetoothAdapter.

2020-12-14 14:17:09 999

原创 编译报错:needed by ‘out/target/product/XXX.apk.....

处理方法:1、在build_log中搜索:failed,查看是否上一次编译发生错误导致需要need by的apk或者文件没有编译成功。2、在build_log中搜索:error,定位是否存在编译错误3、删除out目录,同步代码,重新编译。...

2020-12-11 11:28:08 3103 1

原创 Wifi扫描流程

/android/frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java: final BroadcastReceiver mReceiver = new BroadcastReceiver() { if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { updateWifiState(

2020-12-10 17:31:44 688

原创 WiFi关闭流程

/android/packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.java:public boolean onSwitchToggled(boolean isChecked) { mWifiManager.setWifiEnabled(isChecked)}/android/frameworks/base/wifi/java/android/net/wifi/WifiManager.java:public bool

2020-12-03 15:19:24 561

原创 蓝牙关闭流程

/android/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothEnabler.java:public boolean onSwitchToggled(boolean isChecked) { if (mBluetoothAdapter != null) { boolean status = setBluetoothEnabled(isChecked); }}private boolean setB

2020-12-02 16:56:27 803

原创 蓝牙打开流程

/android/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothEnabler.java: public boolean onSwitchToggled(boolean isChecked) { boolean status = setBluetoothEnabled(isChecked); }private boolean setBluetoothEnabled(boolean isEnabled) { /

2020-12-02 14:42:33 624 1

原创 Wifi连接流程

Wifi连接一个ap一般有两种方式:长按一个网络然后弹出一个菜单,选择连接网络(或者对于已经保存网络也是单击弹出菜单点击连接menu);另一种点击一个网络,然后弹出一个Dialog,输入密码再进行连接。两种方式的连接在底层并无区别,但是在应用层的逻辑略有不同。首先我们先来罗列上层应用连接的流程。在梳理流程中,对于与流程相关性不大的代码省略,否则篇幅就会过长,读者可以参照代码路径和方法名找到方法的具体实现。Wifi连接使用Dialog/android/packages/apps/Settings/sr

2020-11-26 19:50:09 1032

原创 NFC的三种工作模式

NFC的三种工作模式一、NFC概述  首先NFC(Near Field Communication)即近场通信,也就是近(短)距离无线通信技术。在近距离无线通信中还包括了超宽带、蓝牙和ZigBee等等技术,这些技术的特点就是在较短的距离内传输数据,每一种近距离通信的技术对距离和传输数据的速率也不尽相同。  参考《深入理解Android:Wi-Fi、NFC和GPS卷》一书:该技术最早由Philips和Sony两家公司于2002年年末联合推出,从原理上说,NFC和WiFi类似,二者都利用无线射频技术来实现

2020-11-19 09:45:28 4026 5

原创 WiFi打开流程(详细)

WiFI打开流程(详细)首先,与Wifi相关的类WifiEnabler管理着WiFi打开/关闭/扫描等事项。那么WiFi打开流程必然是从WifiEnable这个类开始的。(由于列出全部方法体会使篇幅较长,故只列出重要部分,但读者可参照路径与方法名找到具体方法实现。)简单来说,/android/packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.javapublic boolean onSwitchToggled(boole

2020-11-18 16:15:06 1593 1

原创 装饰者模式

需求概述需求引入:星巴克咖啡订单项目《1》咖啡种类/单品咖啡:Espresson(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)《2》调料:Milk,Soy(豆浆)、Chocolate《3》要求在扩展新的咖啡种类时,具有良好的扩展性,改动方便,维护方便《4》使用OO的来计算不同种类咖啡的费用:客户可以点单品咖啡,也可以单品咖啡+调料组合...

2019-08-25 22:02:02 115

原创 适配器模式

适配器模式引入生活案例在我们日常生活中有各种各样的标准,当我们使用不符合某种标准的东西,就需要相应的转换设备,转换这种标准,那这种转换就可以称为适配器基本介绍《1》适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要的目的就是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。它也被称为包装器。《2》适配器模式属于结构型模式。《...

2019-08-21 17:11:33 169

原创 工厂模式

简单工厂模式问题说明:编写一个Pizza类,然后Pizza的品种有ChessPizza和GreekPizza,Pizza还有四个动作,即准备,烘烤,切块,打包等。类图代码package com.design.gongchang;import java.io.BufferedReader;import java.io.IOException;import java.io.Inp...

2019-08-20 19:55:08 115

原创 MYSQL慢查询的优化案例

函数Max()的优化从下图可知,row行数较多,效率较低select max(payment_date) from payment; explain select max(payment_date) from payment; //查看执行计划如何优化?(创建索引)create index inx_paydate on payment(payment_date);...

2019-08-18 13:43:29 684

原创 数据库优化

为什么要进行数据库优化避免网站页面出现访问错误(由于数据库连接timeout产生页面5XX错误;由于慢查询造成页面无法加载;由于阻塞造成数据无法提交)增加数据库的稳定性(很多数据库问题都是由于低效的查询引起的)优化用户体验(流畅页面的访问速度;良好的的网站功能体验)MYSQL数据库优化SQL及索引优化根据需求写出良好的SQl,并创建有效的索引,实现某一种需求可以有多重写法,这时候...

2019-08-17 10:39:16 110

原创 单例模式

概述所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。饿汉式(方法一:静态变量)基本步骤:《1》构造器私有化(防止new)《2》类的内部创建对象《3》向外暴露一个静态的公共方法(getInstance()方法)代码实现package com.design;public cla...

2019-08-10 19:01:59 101

原创 设计模式七大原则的原理及其实现

程序员编程应该遵守的原则,也是设计模式的设计依据(设计模式为什么这样设计的依据,因为遵守了这七大原则)单一职责原则概述:以一个类来说,一个类只负责一项职责,要是一个类负责两个不同的职责:职责1,职责2,当职责1因为后期需求变更需要改变这个类时,可能会造成职责2执行错误,所以可以将这个类分为类1和类2,分别承担这两项职责。package com.itguigu.principle.sing...

2019-08-09 21:15:39 797 2

原创 Java数据类型及String的缓冲池

IntegerInteger x = new Integer(123);Integer y = new Integer(123); System.out.println(x == y); // falseInteger z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == ...

2019-08-08 21:05:58 631 3

原创 Redis数据类型

概述Redis是速度非常快的非关系型(NOSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。数据类型STRING> set hello worldOK > get hell...

2019-08-08 17:24:44 94

原创 数据库存储引擎

InnoDB是MYSQL默认的事务型存储引擎,只有在需要他不支持的特性时,才考虑使用其他存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过多版本并发控制(MVCC)+间隙锁(Next-Key Locking),防止幻影读。主索引是聚簇索引,在索引中保存了数据,从而避免直接读取磁盘,因此对查询性能有很大的提升。内部做了很多优...

2019-08-06 20:20:26 126

原创 数据库查询性能优化

使用EXPLAIN进行分析explain用来分析SELECT查询语句,开发人员可以通过分析Explain结果来优化查询语句。可以查询的比较重要的字段有:select_type:查询类型,有简单类型,联合查询,子查询等key:使用的索引rows:扫描的行数优化数据访问减少请求的数据量只返回必要的列:最好不要使用SELECT*语句;只返回必要的行:使用LIMIT语句来限制返回的...

2019-08-06 19:28:28 517

原创 B+Tree原理

B+Tree结构B Tree指的是平衡树,并且所有叶子节点位于同一层。B+Tree是基于B Tree和叶子节点顺序访问指针进行实现,它具有B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。在B+Tree 中,一个节点中的key从左到右非递减排列,如果某个指针的左右相邻key分别是key1和key2,且不为null,则该指针指向几点的所有key大于等于keyi且小于等于key...

2019-08-01 19:54:57 5627

原创 数据库基础

过滤对于查询结果集进行过滤select * from mytablewhere col is NULL通配符【只能用于文本字段】%匹配>=0个任意字符_匹配==1个任意字符[]可以匹配集合内的字符,举个栗子,【ab】j将匹配a或者b。[^]不匹配框内的字符select *from mytablewhere col like '[^AB]%';#匹配不以A和B...

2019-07-30 20:50:17 146

原创 SQL语句实现字段和数据的增删改查

创建表其中:id,name,sex为字段名称(属性名),comment为备注信息# 表名create table `student` (# int类型 不为空 自增 `id` int not null auto_increment,# 字符串类型 `name` varchar(64) not null comme...

2019-07-30 17:12:45 212

原创 动态规划之背包问题详解

题目信息5kg的袋子物品:价值 6 , 10, 12重量 1kg, 2kg, 3kg每个物品只有一个,求所装的物品的最大价值分析动态规划,以局部最优解肯定能达到全局最优解,将问题分割为若干个子问题,然后对每个子问题逐个求解,然后找到全局最优解。将包拆分为若干个kg,对于每个kg状态下找到能装下物品的最大价值(表上的i和是为下面的代码做准备,暂时不用考虑)在每个kg状...

2019-07-27 11:48:51 252

原创 使用SpringBoot中日志的简单使用

首先建立一个SpringBoot项目不太熟悉的小伙伴,可看博主这篇文章https://blog.csdn.net/weixin_43159275/article/details/96975859配置pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/PO...

2019-07-26 15:12:24 123

转载 Failed to determine a suitable driver classSpringBoot启动报错

博主在使用SpringBoot时碰到的大坑解决办法在application.properties或者application.yml中添加这样一行代码,即可解决问题#spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springfram...

2019-07-26 14:57:18 148

原创 MYSQL数据库如何写注释

方式一注意:在写注释时,–与注释之间必须要一个空格select * from stu -- 注释方式二注意:这种方式比较随意,加不加空格不影响select * from t_info #注释select * from t_info#注释select * from t_info # 注释方式三select * from t_info/*注释*/...

2019-07-26 11:16:12 7376 2

转载 数据库三大范式

范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF)...

2019-07-26 10:33:16 487 1

原创 关于Next_key Locks

在MYSQL中,Next-Key Locks是InnoDB存储引擎的一种锁实现方式。在重复读的隔离级别下,使用MVCC+Next-Key Locks可以解决幻读问题1. Record Locks表示锁定一条记录上的索引,而不是这条记录。那么如果没有设置索引的话,InnoDB会自动在主键上创建隐藏的索引,则可以继续使用。2. Gap Locks锁定索引之间的间隙,但是不会包含索引,就是两条...

2019-07-26 09:47:11 167 1

原创 数据库中并发问题及解决办法(锁与数据库隔离级别)

数据库并发一致性问题在并发环境下,事务的隔离性难以保障,就会出现很多并发一致性的问题为方便表示,用“T”表示事务丢失修改T1和T2都对一个数据进行修改,T1先修改,T2后修改,T2的修改覆盖掉了T1的修改,则使得T1对数据库数据的修改丢失。...

2019-07-25 13:20:19 506 1

原创 数据库事务

什么是数据库事务数据库事务,简称事务,是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。(来自百度文库)事务是满足数据库事务四个特性的一组操作,这四个特性可记为:ACID(自己理解)其中:A: Atomicity原子性,表示事务被看做不可分割的最小单位,对于本次事务的所有操作,要么全部成功,要么全部回滚(失败)C:Consistency一致性,表示...

2019-07-25 10:02:21 207

原创 利用Maven创建一个SpringBoot项目

首先File–>New–>Project然后此处选择默认选项,然后Next接下来,按照要求对应填写Group:公司名Artifact:项目名Type:选择为Maven项目此处因为版本问题,在左侧选择web后,若右侧出现web则选择web,如果右侧不出现web,如图,则选择spring web stater效果基本一致这里是选择项目路径注意****项目路径最...

2019-07-23 11:17:29 210

原创 Maven导入jar报错的解决办法

方法一右击pom.xml–>maven–>ReImport重新导入项目文件,如下图所示方法二在屏幕右侧点击Maven,查看项目错误信息,如图红线表示此jar存在问题,没有导入成功,可选择点击此图标方法三将本地库所对应错误的jar包删除掉,若前两种方法都不成功,可尝试此方法...

2019-07-23 11:01:09 2940

原创 Maven常见错误

显示某些jar包在本地仓库中加载不到Failure to transfer org.apache.maven:maven-archiver:pom:2.4.1 …解决:找到自己本地仓库中对应文件的位置,然后删除,再进行一次Update Project博主主要是:commons-parents、…-parents之类的错误,删除掉就好了pom.xml还是报错这次是:org.apache....

2019-05-22 16:35:08 174 1

原创 Maven常见错误

找不到build path:显示No actions available解决方法:检查自己的:-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME其中:MAVEN_HOME是自己在环境变量中配置的然后再Update ProjectP(更新)一下自己的项目如果还未正常,则继续看没有Build path,找不到JRE,maven项目目录结构...

2019-05-21 22:33:51 220

原创 Maven进阶三

将Maven配置到eclipse中第一步:打开window->preferences->Maven第二步:点击Installations->Add第三步:选择自己maven的路径,添加maven,第四步:勾选自己上传的maven路径第五步:更改User Settings其中:User Settings:本地仓库目录下的Settings.xmlLocal...

2019-05-20 20:26:06 167

原创 Maven进阶二

Maven环境变量的配置第一步:打开系统属性第二步:打开高级系统设置—>环境变量第三步:配置MAVEN_HOMEMAVEN_HOMEF:\a\Maven\apache-maven-3.1.1其中:F:\a\Maven\apache-maven-3.1.1这是你本机maven的路径(修改成自己的)第四步:添加path%MAVEN_HOME%第五步:测试是...

2019-05-20 19:57:43 141

原创 Maven进阶一

下载Maven网址:http://maven.apache.org/如图:点击Download,在选择对应版本的bin.zip 如需要其他版本 ,可点击archives则到达这个页面:选择想要的版本点击进去以后,如图所示:选择binaries/,则可开始下载...

2019-05-20 19:42:09 210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除