自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (2)
  • 收藏
  • 关注

原创 mysql学习

数据库好处1.持久化数据到本地2.可以实现结构化查询,方便管理,支持增删改查数据库相关概念1.DB datebase数据库,保存有组织的数据的容器2.DBMS 数据库管理系统,称为数据库软件(产品),用于管理DB中的数据3.SQL 结构化查询语言,用于和DBMS通信的语言数据库特点1. 数据存放在表中,表在库中2.一个数据库可以有多张表,每个表有名字标识自己,表名具有唯一性3.表由列组成,称为字段,由一个或多个列组成4.表中的数据按行存储,每一个行类似一个对象.

2020-10-19 09:25:05 134

原创 软件安装:源码与Tarball(鸟哥)

1.开放源码的软件安装与升级linux上面的软件几乎都经过GPL的授权,所以每个软件几乎均提供源码,并且可以自行修改代码,以符合个人需求linux上面真正识别的可执行文件其实是二进制文件,可以使用file命令查看一个文件类型是否是二进制文件由源码(文本文件)-->编译程序(如gcc)-->可执行文件(二进制文件)类似gcc的编译程序进行编译过程不简单,面对一堆程序代码时,可以使用make命令进行编译过程简化,当执行make时,会在当前文件夹下搜索Makefile or makef

2020-10-17 09:21:37 515

原创 Linux程序管理与SELinux(鸟哥)

为方便查阅和记忆1.进程执行一个程序或命令时,产生一个进程,PID标识不同进程不同的用户身份执行程序时,系统给予的权限是不同的,每个进程有三组人的权限,每组人具有r/w/x权限,由这个进程衍生出来的其他进程在一般状态下,也会沿用这个进程的相关权限。程序:二进制程序放置在存储媒介中,以物理文件的形式存在进程:程序被触发后,执行者的权限与属性、程序的程序代码与所需要的数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符PID,进程是一个正在运行中的程序子进程与父进程:PID PPIDfo

2020-10-08 21:41:50 359

原创 JupyterHub Jupyterlab DockerSpawner Docker单主机部署

使用自定义验证,DockerSpawner,mysql后面添加新主机的时候考虑使用SwarmSpawner,生产环境使用Kubernetes(k8s) + KubeSpawner安装docker和docker-composehttps://docs.docker.com/engine/install/ubuntu/https://docs.docker.com/compose/install/加入docker用户组,避免每次使用sudosudo usermod -aG docker

2020-09-27 14:26:03 2066 3

原创 JupterHub部署及遇到的问题

JupterHub提供两个版本部署到云端:1. Zero to JupyterHub for Kubernetes2. The Littlest JupterHub我的环境:Ubuntu18.04、Python3.6.9 、nodejs v14.2.0notebook:jupyterhub:

2020-09-03 20:56:39 2484

原创 Linux系统安装软件

环境Ubuntu18.041 .下载的软件包格式是.tar.gz将下载的.tar.gz文件解压并移动到安装目录tar zxvf XXX.tar.gzsudo mv path/XXX /opt通常 /opt/XXX/bin目录中会有启动软件的脚本命令,为了启动方便,创集快捷方式sudo vim /usr/share/application/XXX.desktop编辑文件:[Desktop Entry]Name=XXXComment=XXXExec=/opt/XXX.

2020-09-01 09:37:36 83

原创 git的使用

配置用户名和邮箱git config --global user.name yournamegit config --global user.mail yourmailgit pull/push 每次输入密码git config --global credential.helper store

2020-07-31 09:53:37 216

原创 编码

关于文本文件、二进制文件、base64、编码方式utf-8文本文件和二进制文件Base64——来自维基百科Base64是一种使用64个(可打印的)字符来表示二进制数据的方法,因为6个bit可以表示64个不同的值(2的6次方),所以每6个bit为一个单元,对应某个可以打印的字符。3个字节(每个字节8bit)有24个bit,对应4个Base64单元,即3个字节可以用4个可打印字符来表示。Base64中的可打印字符包括字母A—Z,a—z,数字0—9,62个字符,另外两个可打印符号在..

2020-05-14 10:46:27 144

翻译 tensorflow2 第一个例子

import tensorflow as tfmnist = tf.keras.datasets.mnist(x_train, y_train),(x_test, y_test) = mnist.load_data()x_train, x_test = x_train / 255.0, x_test / 255.0model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf..

2020-05-13 15:31:13 491

原创 Windows Installer XML (WiX) 部署程序包 批量添加文件

什么是 WiX?Windows Installer XML (WiX) 平台是一组工具与规范,使您能够创建 Microsoft Windows Installer 数据库文件(MSI 和 MSM)。WiX 工具承袭了根据源代码创建可执行文件所使用的传统编译和链接模型。WiX 的源代码是使用 XML 文件编写的。WiX 源代码经过预处理、编译与链接,以创建 Windows Installer 数...

2019-11-19 09:39:49 786

翻译 蓝牙安全概述

蓝牙安全模型包括五个不同的安全特性:配对,绑定,设备鉴权,加密和消息完整性。配对:创建一个或多个共享密钥的过程绑定:保存配对中创建的密钥的行为,用于后续的连接,形成一个信任的设备对设备鉴权:验证两个设备有相同的密钥加密:消息保密性消息完整性:防止消息伪造随着时间的推移,蓝牙核心安全体系结构不断发展。最初,配对使用基于SAFER+的E21或E22算法,此版本的配对称为BR/E...

2019-08-20 09:33:37 1931

原创 electron使用serialport报错NODE_MOUDLE_VERSION不一致

为了操作串口,在electron中使用serialport中使用了原生模块serialport我的环境是:nodejs版本v10.15.3,eletron版本v4.2.0,serialport版本v7.1.5,VS2017,python版本v2.7.15npm install --save serialport下载serialport后直接使用const Serialport = re...

2019-08-20 09:32:37 3842

原创 蓝牙安全管理(Security Manager,SM)之配对、鉴权和加密

内容来自蓝牙核心规范V5.1 Vol3 PartH,若有错误之处,希望指出来SM定义了管理配对、鉴权和加密的协议和行为,适用于LE-only单模设备或BR/EDR/LE双模设备。0、蓝牙安全概述蓝牙安全模型包括五个不同的安全特性:配对,绑定,设备鉴权,加密和消息完整性。配对:创建一个或多个共享密钥的过程绑定:保存配对中创建的密钥的行为,用于后续的连接,形成一个信任的设备对设...

2019-04-09 15:05:21 10336 2

原创 Linux 常用命令

整理总结最近使用到的Linux命令:1.查看文件编码格式file -i filename2.改变文件编码格式:iconviconv test.log -f iso-8859-1 -t UTF-8 -o test1.log --verbose

2019-03-20 14:57:31 101

原创 Linux18.04 Qt5.9.7 ibus无法输入中文

最近在linux下使用Qt开发遇到不能输入中文的情况系统:Linux18.04输入法:ibus chinese(Intelligent Pinyin)Qt安装路径:/opt/qt5.9.7/了解到Qt是支持ibus的,设置如下后可以输入中文:修改/etc/profile文件:sudo vim /etc/profile输入密码在文件末尾添加:exportGTK_...

2019-03-14 16:50:57 1180 2

原创 蓝牙原理—Radio射频协议

开会时被主管问到蓝牙到底是怎么工作的,竟然不能很好的清晰的表述出来,平时更多的关注蓝牙软件部分,有必要了解一下蓝牙实现原理,整理最近学习传统蓝牙技术(BR/EDR)的一些基本概念,有助于蓝牙后续学习~参考:《蓝牙核心技术与应用》《蓝牙技术》http://www.wowotech.net/bluetooth/bt_protocol_arch.html蓝牙有三种技术:ER/EDR(传统蓝牙)、...

2018-11-07 10:28:34 8825

原创 Android8.0蓝牙配对失败和配对分析

引入工作中接触到蓝牙,最近遇到一个非常头疼的问题,厂家自动化测试平台根据MAC向我们的机车端发起蓝牙连接的时候总是失败,log中显示如下一段:I/bt-btm  ( 3115): btm_simple_pair_complete()  Pair State: 4  Status:5  sec_state: 0// platform/system/bt/stack/btm/btm_int...

2018-10-22 14:11:48 3327

原创 Android Drawable

来自android开发艺术探索Drawable:可拉伸的,表示一种可以在Canvas上进行绘制的抽象概念,常见的颜色和图片都是一个DrawableDrawable的优点:使用简单,比自定义View成本低,非图片类型的Drawable占用空间小,有助于减小apk大小什么是Drawable表示一种图像的概念,可以是图片,也可以通过颜色构建一个Drawable,实际中,Drawable常...

2018-10-18 22:23:33 301

原创 Android8.0 蓝牙进程与蓝牙堆栈通信源码分析

一、概述我们知道android8.0蓝牙架构如图,其中蓝牙进程通过JNI与蓝牙堆栈bluedroid通信,同时bluedroid向上层提供接口,总体流程是蓝牙进程通过JNI调用bluedroid提供的HAL接口来实际操作蓝牙,并设置java层回调传给HAL层,HAL层通过回调通知上层结果,下面分析android bluetooth源码(8.0) 二、每一层提供的接口Apps通过...

2018-10-18 18:51:45 3474 5

原创 uml类之间的关系

泛化(Generalization)继承关系,子类继承父类代码体现:extend实现(Interface Realization)类与接口的关系代码体现:implements关联(Association)拥有,引用的关系,一个类知道和使用另一个类的属性和方法,被关联的类可能被多个类使用代码体现:成员变量,例如通过setXXX接口,构造时传入参数,调用其他对象的get...

2018-09-12 13:59:19 197

原创 ContentProvider的启动过程

本文根据Android开发艺术探索整理所得,参考代码Android4.0首先了解一下应用的启动1.应用的启动一个Android应用的启动入口是ActivityThread.main函数ActivityThread.java public static void main(String[] args) { // 应用入口函数 Trace.traceBegin(Trace....

2018-07-05 16:15:27 407

原创 BroadcastReceiver的工作过程

主要三个方面的内容:如何使用BroadcastReceiver,BroadcastReceiver注册过程,发送消息和接收消息的过程1.如何使用    public abstract class BroadcastReceiver public class MyReceiver extends BroadcastReceiver { public MyReceiver()...

2018-07-04 16:46:49 166

原创 Service的绑定过程

Service的绑定过程是从这里开始的:ContextWrapper.java @Override public boolean bindService(Intent service, ServiceConnection conn, int flags) { return mBase.bindService(service, conn, fl...

2018-07-04 16:12:27 798

原创 Service的启动过程

Service有两种工作状态:1.启动状态,主要用于执行后台计算2.绑定状态,主要用于其他组件和Service交互两种工作状态是可以共存的Service的启动是从下面开始的:public class Activity extends ContextThemeWrapper implements LayoutInflater.Factory2, Window.Call...

2018-07-04 13:52:12 213

原创 Activity的启动过程

简单阐述Activity工作启动原理:Acitivity.javapublic void startActivityForResult(@RequiresPermission Intent intent, int requestCode, @Nullable Bundle options) { if (mParent == null) { ...

2018-07-03 15:58:48 191

原创 Install APK failure Error:INSTALL_FAILED_INVALID_URI

执行adb push XXXX.apk /data/local/tmpadb shell pm install -r -t /data/local/tmp/XXXXX.apk正确但是:adb shellcd /data/local/tmp/pm install -r -t ./XXXX.apk失败解决:使用完整路径

2018-06-27 15:29:46 876

原创 保证Service不被杀死的几种方案!!!

项目需求:使用服务实现定时,但是由于内存有限,服务经常被后台杀死,导致定时失效

2018-06-13 10:06:37 181

原创 Android IPC之Binder连接池BinderPool

通常情况下,在使用AIDL时,一个Service需要创建一个AIDL接口,在Service中创建一个类集成AIDL接口中的Stub并实现抽象方法,在onBind中返回该类实例,然后在Client中绑定服务,建立连接后可以访问Service中方法,即在一个Service中只能返回一个业务调用的Binder。当多个业务模块都需要使用AIDL时(如50个,100个),如果创建多个Service会消耗大量...

2018-06-12 18:38:25 630

原创 AIDL编译错误: 'aidl.exe'' finished with non-zero exit value 1

在学习AIDL时,实现服务端后,将服务端ADIL接口拷贝到客户端时编译出现错误:Process 'command 'D:\ProgramFiles\Android\Sdk\build-tools\27.0.3\aidl.exe'' finished with non-zero exit value 1在网上查了一些资料后,没有找到能符合我自己情况的答案,不过基本可以肯定的是AIDL文件有错误,收集...

2018-06-08 14:24:48 6434 1

转载 Binder学习

转载https://blog.csdn.net/freekiteyu/article/details/70082302转载https://blog.csdn.net/freekiteyu/article/details/70082302转载https://blog.csdn.net/freekiteyu/article/details/70082302Android-Binder进程间通讯机制概述...

2018-06-07 14:36:33 126

转载 Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案

转载:https://blog.csdn.net/starry_night9280/article/details/53207928在windows上 使用Git bash遇到的问题,git add时提示:Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案参看stackoverflow回答:http://stackoverfl...

2018-06-06 17:20:04 132

翻译 Android官方架构组件:Lifecycle

Lifecycle is a class that holds the information about the lifecycle state of a component (like anactivity or a fragment) and allows other objects to observe this state.Lifecycle uses two main enumerat...

2018-05-21 22:08:51 318

原创 AS报错Unsupported method: BaseConfig.getApplicationIdSuffix()

今天打開一個新的項目,build.gradle sync時報錯:Unsupported method: BaseConfig.getApplicationIdSuffix().The version of Gradle you connect to does not support that method.To resolve the problem you can change/upgrade ...

2018-05-15 18:07:54 1298

原创 面试总结2

一:一面:自我介绍Java1、什么是面向对象,表述三个特性,哪个特性最强大,为什么继承不太好2、什么是抽象类和接口,它们之间的区别,什么时候用抽象类,什么时候用接口3、简述用到的集合类(问到vercor 和ArrayList 区别,分别怎么实现线程安全)4、有什么排序算法,简述一个5、用到过什么设计模式,并简述(我说了单例模式,观察者模式) Android1、activity生命周期2、fragm...

2018-04-26 21:40:22 116

原创 面试总结

最近忙于找工作,面试了一些公司,不管最终结果如何,从面试过程中学到了不少知识,深刻意识到自己技术太菜,以前坐井观天,虚度了一年半的光阴,心里十分愧疚,现在记录一下面试中遇到的问题,以备将来查看。一、wxdz-android首先是笔试,一个小时,因为这个岗位要求懂得Android os framework,考察以C++和Java为主,主要题目有:1.void func(char r[100] siz...

2018-04-26 21:34:05 139

原创 基础算法之链表查找倒数第N个元素

今天面试被问到数据结构链表:查找链表的倒数第N个元素第一种方法是遍历链表,记录链表的长度total,再次遍历链表,第total - N - 1个节点就是查找结果,需要遍历两次链表第二种方法是:使用两个指针,通过移动指针,遍历一次链表,p指针首先移动n-1步,然后p和q同时移动,知道p.next == null,此时p所指向的节点就是所求 Node p = head; Node q =...

2018-04-23 12:28:58 3933

原创 基础算法之冒泡排序

1.今天面试被问到最简单的冒泡排序,冒泡排序看似简单其实也不简单,在此重新复习一下冒泡排序冒泡排序的时间复杂度是N平方,如果数组已经有序,可以进行优化,sort3方法在数组有序的时候,只需要遍历一次数组,时间复杂度是N,空间复杂度只需要一个int变量在交换的时候使用 public void sort1(int[] a) { if (a == null || a.length ...

2018-04-23 12:16:16 86

原创 Java HashMap.entrySet遍历

HashMap通过get方法只能得到value,如何遍历HashMap,访问所有的key和valuetransient Set<Map.Entry<K,V>> entrySet;entrySet是一个set,内部数据是Map.Entry<K,V>,即是HashMap中key-value1、获取到entrySet    public Set<Map.Entr...

2018-04-22 15:52:04 1673

转载 设计模式之单例模式

一、 什么是单例模式一个类有且仅由一个实例,单例类需要负责实例化和提供全局访问二、 为什么要使用单例模式如果产生过多的对象浪费系统资源,为避免频繁的创建和销毁对象对资源的浪费,如线程池,网络请求,对数据库访问;某种类型应该只有一个,如果由多个实例存在,可能会导致程序使用异常,资源使用过量,导致结果不一致等问题三、 单例模式的优缺点优点:减少系统内存使用,避免对资源的同时操作导致的异常缺点:容易引起...

2018-04-22 15:44:37 140

原创 Java集合之HashMap

public class HashMap<K,V> extends AbstractMap<K,V>    implements Map<K,V>, Cloneable, Serializable {HashMap继承了AbstractMap,Map,Cloneable,Serializable,表示是映射,存储Key-Value,可以被克隆,可以序列化一、常量...

2018-04-22 13:39:14 103

蓝牙核心规范Core_v5.1.pdf

蓝牙核心规范文档:BR/EDR, AMP, LE, HCI, MWS, Protocol等

2019-06-27

dex2jar-2.0

反编译工具,使用方法:解压dex2jar.zip,解压你的apk得到classex.dex文件,执行d2j-dex2jar.bat classes.dex得到jar文件,使用jd-gui打开jar文件即可查看源码,亲测能用!

2018-06-27

空空如也

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

TA关注的人

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