自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (6)
  • 问答 (4)
  • 收藏
  • 关注

原创 联想V480(扬天) EI Capitan 完美驱动教程

联想V480(扬天) EI Capitan 完美驱动教程本人小白一枚,历时两个月,在大神的带领下,初步入门,完美驱动EI Capitan(10.11.6)。在此分享一下在这两个月以来的学习成果。机子配置如下图:接下来,从几个部分来讲一下关于安装黑苹果的步骤及注意事项,不对之处,请指正。一、安装前准备工作1.        首先要了解自己的电脑是哪种启动方式,一般而言,有

2016-12-31 10:21:42 7720

原创 ubuntu14.04LTS安装Android studio及配置SDK

之前没在Ubuntu系统中做过Android开发,查询网上的很多资料,都是很简单的安装教程,尝试一下,都可以安装成功,但是在新建项目时,出现了问题。由于国内无法直接访问Google,因此在更新下载SDK时,出现下载失败无法执行的情况,后经过查找相关离线包进行了解决,在此记录一下。一、安装Java jdk并进行环境变量配置该部分可参考ubuntu16.04下安装Java8详细教程,其中安装配...

2020-01-16 15:05:03 3300

转载 生产者/消费者模式的理解及实现

  ★简介   生产者消费者模式并不是GOF提出的23种...

2019-10-15 10:44:32 497

原创 经典蓝牙那些事儿——(登录、登录异常、自动连接、中断、断后重连等)

最近项目中用到传统蓝牙连接设备通讯,折腾了一周把基本功能实现了,这里简单记录一下。蓝牙设备:HC-05蓝牙模块主要功能:-首次手动配对;-自动连接;-连接超时或异常处理;-中断监听;-中断后检测重新连接测试版本:Android 6.0实现经典蓝牙功能的基本逻辑:整个蓝牙功能逻辑如上图所示,其中比较关键的是蓝牙自动连接和断开后重新连接。关于蓝牙自动连接,本文采用的是首次配对...

2019-07-17 13:13:58 2908

原创 信号分析——高斯函数拟合(Java/Matlab)

由于上一篇博文提到的多项式拟合模型的拟合系数没有任何物理意义,而化学分析中,有许多具有明确物理意义的二维谱图,图光谱、色谱等,其信号峰位置、峰高、峰宽等均具有实际物理意义,因此,提出使用高斯曲线进行数据拟合和表征。高斯函数仅适用于对称谱图,其简图如下:假设光谱曲线,可用简单的高斯函数表达:其中,ymax、xmax和S分别为峰高、峰位和区域宽度,可通过非线性拟合的方法来求解,其过...

2019-05-15 10:13:09 12636 8

原创 信号分析——曲线拟合(多项式非线性拟合Java/Matlab)

曲线拟合,即以一条函数曲线去逼近已知测量数据点的过程,考察化学理论值和实验数据之间的吻合程度。一般地,光谱曲线、伏安曲线、色谱曲线等均可以用多项式函数拟合。设有N组测量数据点(xi,yi)(i=1,2,···,N),可以用一个m阶多项式进行表示:式中,bj为拟合系数,N组数据点按照上述多项式可组成N个方程,改写成矩阵形式如下:记作:由前文知,B的最小二乘解为:则...

2019-05-14 16:16:45 3066 2

原创 信号分析——导数(Java/Matlab)

信号求导,可以消除信号的背景,确定谱峰的位置,改善谱峰分辨情况,一般地,在信号分析中,常用的信号求导为一阶、二阶导数。基于S-G滤波的基础上,获取拟合参数矩阵A后,可以利用滤波窗口的2m+1个数据对窗口中心点(i=0)求该点信号处的p阶导数,对其多项式:进行求导,当i=0时,可得:因此,窗口中心点数据的p阶导数等于A矩阵的第p+1个元素和p的阶乘的乘积。其一阶导数和二阶导数分别如下...

2019-05-08 10:46:54 2652

原创 信号分析——S-G卷积平滑(Java/Matlab)

Savitzky-Golay滤波,即S-G滤波平滑,利用多项式进行数据平滑,基于最小二乘法,能够保留分析信号中的有用信息,消除随机噪声,在信号图谱中最直接的结果就是将图谱的“毛刺”去掉,整个图谱更加平滑。平滑窗口宽度:2m+1,即为该窗口原始数据点个数n(n=2m+1),一般要求窗口宽度为奇数,从测量原始数据中选取一子集作为窗口,而非整个数据集。假设窗口内的原始数据点可以用一个k-1次多项...

2019-05-06 15:10:45 11099 4

原创 Matlab常用函数表

Matblab常用函数 函数名 功能 函数名 功能 sin 正弦 pow2 以2为底幂 sinh 双曲正弦 sqrt 平方根 asin 反正弦 nextpow2 不小于变量的最小2指数 asinh 反双曲正弦 abs 模 cos 余弦 tanh 双曲正切 cosh...

2018-12-23 10:28:22 1264

原创 利用ViewPager和WheelView实现横向纵向轮番滚动

如题如图,利用ViewPager和WheelView实现横向滚动带动纵向数据列表发生变化。横向滚动:ViewPager关于ViewPager的使用,网上已经有较多的介绍,这里说一点,之前我想利用ViewPager实现无限循环,虽然功能实现了,但是无法获取到当前每个view的ID,无论通过setTag还是setId都无法准确获取到无限循环中的view,所以导致在上述代码实现过程中,使用的还是传统有限...

2018-07-04 10:47:39 958

原创 关于MPAndroidChart中 LineChart的更新使用

在去年4月份,就MPAndroidChart的旧版本中的LineChart进行了简单封装,上个月在做另一个项目时,无意间去看了一下这个控件的github,竟然发现更新了,所以在新项目中,尝试使用了更新之后的LineChart,发现效果还不错,接下来就这一“折线图”进行简单说明。github地址:https://github.com/PhilJay/MPAndroidChart   public c...

2018-07-04 09:39:32 3798

原创 动态规划-07依赖背包

按照《背包九讲》的顺序,本文主要讲其第七讲-依赖背包,所谓“依赖背包”即指背包物件有主附件,类似的解释之前在“二维费用背包”中提到过,不过这里的主附件是从属关系,即选择主件,必须要选择附件,而附件的类别又可以有很多种,同样的附件也可以有附件,这样如此反复,即会形成一个“树形DP”,其结果和考虑的情况将呈指数型增长,所以无法写成类似于“01背包”的方程式,但如果给定限定条件,我们同样也可以将其转换成...

2018-04-22 13:15:09 557

原创 动态规划-06分组背包

本文主要介绍一下“分组背包”,分组背包,即一开始选取的物品以及分成几个组,在选取时,可以从一个分组中选取一件物品或者一件物品也不选取,以此到达最大价值的选取目的。其方程也可以写成类似于“01背包”的方程,如下:c[k][j] = max(c[k-1][j], c[k-1][j-w[k-1][i]]+v[k-1][i])其中,k表示当前分组号,i表示当前分组中的第i件物品。以下为具体题目示...

2018-04-22 10:24:06 3915

原创 动态规划-05二维费用背包

前面4篇博客已经将几种基础背包问题介绍,本文主要对“二维费用”背包问题进行介绍。“二维费用”背包问题,较前面几种背包问题主要是对每类物品增加了一维费用,用一个简单的例子来说,即选取某一个物品的同时增加了一个附属物品,同时对附属物品的费用也有了限制,通过这种思维,可以将“二维费用”背包转换为“01基础背包”问题,按照“01基础背包”方程可以得到该基础方程:c[i][j][k] = max(c[...

2018-04-21 10:40:59 1131

原创 动态规划-04混合背包

前面的三种背包问题介绍完后,基于这三种背包问题可以引申出这三类的混合形式-混合背包问题。可以两两混合,也可以三种混合,无非是在分析的时候,根据每个物品的出现次数将其分类组合。假设:定义可容纳总重量W =10 Kg,物品种类 N = 3,每件物品重量w[i],对应价值v[i],求解在可容纳重量范围内如何选取可获最大价值。具体题目:可能出现的情况:由于使用二维数组较为繁琐,以下...

2018-04-20 15:46:01 408

原创 动态规划-03多重背包

紧接前面一篇,讲一下“多重背包”问题,该问题与“完全背包”相比,在每个物品的选取次数上给出了限定,即选取次数k不能无限的增大,其方程和“完全背包”的极度相似,只是k的限定条件发生了变化。c[i][j] = max(c[i-1][j-(k*w[i-1])] + k*v[i-1], c[i-1][j]) (0 <= k <= counts[i])其中,counts[i]表示第i件...

2018-04-20 14:58:25 892

原创 动态规划-02完全背包

继上一篇01基础背包,本文主要利用Java实现“完全背包”问题,该问题类似于基础背包问题,主要区别在于“完全背包”对于放置的物品个数没有限制,即可以重复选取,每个物品的选取放置次数可以是0、1、2······,情况相比基础背包要复杂的多,其核心方程也可以写成类似于01问题的方程,如下:c[i][j] = max(c[i-1][j-(k*w[i-1])] + k*v[i-1], c[i-1][j...

2018-04-20 10:54:22 906

原创 动态规划-01基础背包

最近在做华为OJ题,做到“购物单”一题,突然感觉一脸懵逼,有点熟悉却又思维混乱,研究了一下,发现是由来已久的背包问题,遂详细的了解一下该算法。这里将最简单的背包问题——即无重复选取,每个物品仅放一次,其核心方程如下:f[i][j] = max{f[i-1][j],f[i-1][j-[w[i-1]]]+v[i-1](j>=w[i-1])}假设:定义可容纳总重量W =10 Kg,物品种...

2018-04-19 10:14:56 304 1

原创 Java实现的几种色差公式

最近做色差计算,需要用到CIE 1976Lab、CMC(l:c)、CIE DE 2000三个色差公式,需要用Java实现,具体的公式网上都有,这里就不再赘述,下面直接贴代码:1.CIE 1976Lab/*** CIE 1976Lab* */public static double CIE_1976(double L1,double a1,double b1,double L2,double...

2018-03-11 13:28:31 4363 1

原创 Python爬虫(二)-再探豆瓣Top250

紧接着上一篇,当我继续想要爬取豆瓣的热门评论的时候,报错了,显示我的IP异常,我意识到被豆瓣反爬了,于是在网上找各种伪装的方法,几番搜索下,总结出了以下几种伪装的方法:1.构造UA池:通过构造一个“User-Agent”池,骗过要爬取的网站,伪装成浏览器进行访问,这种方法比较常见,但如果当你的IP被禁之后,这种方法并不见得有效。2.设置代理(构造IP池):看过很多大牛的回答,设置代理不失为一个好方...

2018-01-13 10:58:38 1026

原创 Python爬虫(一)-初探豆瓣Top250

最近突然对python兴趣浓厚,在看过几本基础书籍后,便想动手开始做做小的实践,首当其冲的便是爬虫,在学习了很多大神的爬虫入门贴后,深感佩服,在这里感谢以下两位博主的精彩分享:1.xlzd 2.Jecvay其中,由于目前好多网站都采取了反爬行动,所以在学习的时候并不能完全采用上述两位博主的源码,但是参考价值很大。本文是在xlzd的基础篇的例子上稍微加了点爬取内容,即可以下载Top250的影片图片和...

2018-01-08 13:47:11 1461

原创 Android矢量图的制作

在Android开发中,搞过UI设计的人都知道,经常会为了适应不同的屏幕分辨率而制作大量的图片,如果有一个靠谱负责的美工还好,否则真的很痛苦,经过这么久的学习,踩坑无数,练成了终极大法,遂昭告天下。首先,总结一下现成的几个不错的Android图片素材库(从知乎大佬那里copy过来的):1.阿里公开库http://www.iconfont.cn/collections?spm=a313x

2017-12-26 15:06:17 1188

原创 Android中的socket长连接问题(包括心跳机制、多线程数据发送)

前阶段的一个项目,需要实现socket的长连接,即需要实现心跳连接,由于之前只做过简单的socket通讯,所以没有太多的相关知识,只能在度娘上边儿潜水,从0开始学习心跳机制,其实,只要稍微了解网络通讯的业界大佬对此应该都是不屑的,“心跳”说白了就是为了保证长连接,在正常的socket通讯中,只要服务端socket和客户端socket连接成功后,就可以进行数据的传递了,但是有些时候,服务器端不知道客

2017-12-26 10:38:49 2489 2

原创 仿C# BinaryReader 读取二进制文件的Java实现代码

最近手头的活儿暂告一段落,正好有时间整理一下前面做的一个项目,在某些时候,我们需要读取一个格式明确的二进制文件,由于格式确定,我们还需要按照位数来读取相对应的内容(例如,我们需要读取第44位到第56位的这12个字节),说到这儿,很多人大概都会说,这有什么难的,Java读取二进制的方法有一大堆,随便找一个都可以读取,的确,Java的读取方法有很多,但是似乎没有一个读取一个字节就会让当前字节位提升一位

2017-12-26 09:04:29 2571 1

转载 HTTP请求报文和HTTP响应报文

HTTP请求报文和HTTP响应报文 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(r

2017-12-23 10:40:53 277

原创 Java中累计时间的计算(以小时为最终结果)

最近在项目中需要用到工作累计时间,所以就就写了一个小方法,作用是可以计算两个时间点之间的累积时间(即累积工作小时),这里头需要注意的是输入的日期格式为“yyyy-MM-dd-HH”,目前测试过后,可以计算不同年月日之间的小时差,下面附上主要代码:public static int workHours(String startTime,String endTime){ String[]

2017-10-19 14:20:12 5020

转载 Android基础笔记(十六)- Service:startService()、stopService()、bindService()、unbindService()补充

开门见山第一种第二种第三种总结开门见山开启服务有三种情况:如果直接使用服务,则没有必要进行绑定,但是如果要使用服务里面的方法,则要进行绑定。具体的启动情况有下:①调用startService(),再调用stopService()。②单独调用bindService()方法,再unbindService()后,以执行服务内部的方法。③先调用startService(),再调用bindSer

2017-09-22 09:31:27 1388

转载 获得Android设备的唯一序列号

理论部分1、每个设备都有一个唯一序列号,Android设备也不例外,PC上用Mac地址实践部分1、核心代码:     Secure.getString(getContentResolver(),Secure.ANDROID_ID);2、一个小案例: main.xml [html] view plain copy print? <?xml version=“1.0” encoding=“utf-

2017-09-11 18:09:46 1417

原创 Android横竖屏切屏的注意事项

最近接触切屏,要求横竖屏有不同的布局,但是控件功能一致,所以就上网找了找这方面的知识,刚开始头还是比较大的,总结一下网上整理的,大致从以下几个方面讲一下。1.横竖切屏的生命周期要实现切屏,首先要考虑切屏时候的数据保留问题,这就需要考虑到生命周期的变化,经过测试正常的切屏会经历:onPause--&gt;onStop--&gt;onDestroy--&gt;onCreate--&gt;onStart...

2017-08-25 14:15:28 476

原创 关于如何获得截取byte[]的高低位?

最近利用CH340B串口进行Android端的软件开发,通讯协议中要求使用拼接byte[]来进行指令的发送,其中涉及到了类型转换和byte高低位的截取,这里小结一下。由于发送指令参数是int型数据,所以基本的方法是利用int转byte[]来进行截取,这里再写一下关于int和byte[]之间的转换,不论是从高位到低位还是低位到高位,方法基本一样:1.int转byte[](高位到低位)pu

2017-07-11 10:00:55 4835

原创 Android 实现简单的登陆注册功能(SharedPreferences和SQLite)

最近刚好做了一个Android的登录注册界面,将数据利用SharedPreferences或者SQLite绑定到Android程序中,实现简单的登陆注册功能,本文未涉及到与服务器的交流。首先,对于登陆注册要有一个明确的逻辑顺序,不管是对于SharedPreferences还是SQLite,流程都是:注册----&gt;检测是否重名----&gt;注册成功----&gt;登录----&gt;验证...

2017-07-10 08:57:43 34517 13

原创 自定义Title标题栏

最近需要写一个自定义的标题栏,本来想把自带的style改改的,但是又感觉太麻烦,所以干脆自己来写一个,简单的实现中间文字标题,两侧Button点击事件。先放个效果图:代码如下:<android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_

2017-06-23 15:28:40 503

原创 如何实现EditText的历史记录功能(关闭后再次打开显示上次的记录)?

内容:主要是实现从主Activity跳转到设置Activity,然后点击EditText进行参数设置(这里均是Number类型),参数需要限制类型、限制长度,同时在退出当前Activity或者关闭应用再次打开后,可以自动显示最近的历史参数记录。实现的方式:Android studio,一个敲码很爽的键盘,一首轻快的民谣外加一个思考的大脑一、基本属性言归正传,一步一步来写,首先是Edit

2017-06-23 15:12:56 7821

原创 利用handler机制进行Server数据传输

在进行Server数据收发的时候,由于Android对HTTP、Socket等不支持在UI中进行操作,所以需要使用非主线程的其他线程来进行请求操作,于是想到了利用handler,将Socket等收发数据的请求放在其他线程中,通过handler传递来更新主线程,主要的收发传递代码如下:一、handler接收端private Handler handler = new Handler() {

2017-06-07 09:21:58 482

转载 Android<我所理解的Handler机制>

1.为什么需要Handler机制在我的<线程和进程在Android中的工作方式>中,明确地说明了应用启动时,系统会为应用创建一个名为“主线程”的执行线程。 此线程非常重要,因为它负责将事件分派给相应的用户界面小部件,其中包括绘图事件。 此外,它也是应用与 Android UI 工具包组件(来自 android.widget 和 android.view 软件包的组件)进行交互的线程。所以我们所有的涉

2017-06-07 09:06:34 363

原创 Android中AIDL异常

在调试AIDL服务的时候,一开始遇到了下面这个问题: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.example.renkai.aidl_test.IMyService }看过很多大神的回答,说是Android 5.0之后AIDL就不支持隐式声明了,总结了网上的方法,

2017-06-02 20:35:18 1725

原创 Android中的广播Broadcast

从一开始值认识Activity到现在开始逐步学习其他三大组件,这是个漫长的过程,今天刚好学了一点儿Broadcast的内容,总结一下。顾名思义,Broadcast,即为广播的意思,那么这样一个广播在Android开发中起什么作用呢?首先,从传统意义上来讲,广播的作用是为了传递信息,那么Broadcast同样也是用来传递信息的,而且传递的还是全局信息,即Android中的系统信息,比如短信的收发,不

2017-05-28 15:44:55 458

转载 JAVA中的反射机制

反射,当时经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧!           一,先看一下反射的概念:              主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。             反射是Java中一种强大的

2017-05-27 14:58:20 291

转载 Base64编码与解码原理和使用及复杂数据的存储

Base64是网络上最常用的传输8bit字节数据的编码方式之一,是一种简单的加密方式,实际中使用的加密比这复杂的多,也可以用在复杂数据的存储上,比如我们要把类对象和图片等复杂数据进行存储,就需要将这些对象和图片的字节数据进行Base64编码,然后再讲编码后的String存储到XML文件中。      我们先来简单的了解Base64的原理:3*8=4*6      例子:s13       首先

2017-05-25 09:29:04 902

转载 关于Base64编码的理解

之前在很多业务中都有见过或者用到过Base64编码,但一直一知半解,没有对它有一个深入的认识和理解。今天就来聊一聊Base64编码的问题。       首先要明确的是,Base64是一种可逆的编码方式,提到编码方式,我们首先想到的肯定是Ascii、GBK、Unicode这些常用的编码方法,那么Base64与这些编码方式有什么不同呢?       简单来将,Base64就是一种用64个Ascii字符

2017-05-25 09:25:56 283

利用ViewPager和WheelView实现横向纵向轮番滚动

利用ViewPager和WheelView实现横向纵向轮番滚动,具体的展示课参考博客:利用ViewPager和WheelView实现横向纵向轮番滚动

2018-07-04

Android注册登录功能

实现了Android的注册登录功能,基本涵盖了注册登录的问题。

2017-07-10

EditText_test

EditText限制输入长度、类型、历史记录等

2017-06-23

Android API

Android API

2017-05-08

XCL-Charts

XCL-Charts

2017-05-08

联想V480(扬天) EI Capitan完美驱动

联想V480(扬天) EI Capitan完美驱动

2017-01-04

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

TA关注的人

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