自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浅时光_XinLee

牛羊才会成群,狮虎只会独行

  • 博客(41)
  • 收藏
  • 关注

原创 Android开发常用命令总结

大日志分割split -b xm 文件名7z 文件解压7z e 文件名adb 命令查看cpu : adb shell busybox top查看内存: adb shell dumpsys meminfo 进程名(xxx)查看进程 :adb shell ps | grep 进程名kill进程: adb shell am force-stop 进程名发送广播: adb shell am broadcast -a com.baidu.duer.query (acti..

2020-06-08 13:34:48 409

原创 Android开发笔记:SharedPreference文件状态改变监听

SharedPreference作为一种序列化方式,经常被用来存储一些简单的数据或状态,最近使用SharedPreference来保存设置参数,但是当参数发生变化时,需要进行一些处理,一方面可以通过对响应的设置逻辑进行监听,例如观察者模式等等方式,查阅资料时发现一种比较trick的方法,通过监听SharedPreference文件的变化,来进行相应的处理。通过registerOnSharedp...

2019-05-26 20:52:09 2981

原创 Android开发笔记:RecyclerView(二)刷新与点击事件

RecyclerView(一)主要介绍了RecyclerView基础的使用方式,用于列表展示大量数据,介绍了一些方法和类的关系。列表中的数据通过一个LIst数据结构保存,通过adapter进行绑定和渲染,在使用RecyclerView时,不可避免的会遇到展示列表信息的变更,即List内容的更改,RecyclerView不会自动的展示更改,需要进行刷新操作。RecyclerView的刷新每个...

2019-05-21 20:24:59 3971

原创 Android开发笔记:RecyclerView(一)先学会使用

对RecyclerView一直处于一种朦胧的理解状态,最近项目经常使用RecyclerView,本系列主要从浅入深的总结自己对RecyclerView的理解前言 面对一个新控件,首先要学会使用,然后再逐步学习其原理,RecyclerView作为ListView 的替代,灵活性更强,我把它理解为一个插线板,需要什么功能就插入什么,非常方便。 初学Android时,习...

2019-04-27 15:33:33 831

原创 暴力反射改变不可变类:String

我们都知道String是java中一个不可变类,因为String内部是一个final修饰的char数组:private final char value[];由于value是私有的final变量,String中也没有提供get和set方法,使得value无法改变。但是value是一个引用,就像c++中的指针一样,指向一个数组内存的地址,被final修饰无法改变他的引用指向,但是我们可...

2018-08-05 13:57:06 658

原创 Android自定义View实现弹幕效果

在很多视频直播中都有弹幕功能,而安卓上没有简单好用的弹幕控件,本文介绍一个自定义弹幕view的demo。效果图:思路:自定义Textitem类表示弹幕的信息 自定义view继承view,使用ArrayList保存每条Textitem 随机生成坐标点绘制每条TextItem,不断变换Text的横坐标实现弹幕的滚动首先创建弹幕类,弹幕包括坐标,颜色,滚动速度,以及文字内容:...

2018-08-04 20:36:59 1527

原创 Java 跳出多重循环:Lable的使用

java 中使用”{“和”}”组成一个代码块,例如我们平时使用到的静态代码块,使用static修饰。每个代码块可以使用一个Label修饰,Label不是一个关键字,是一个任意标示符,可以理解为一个代码块的标示名字,就像c++中使用goto语句时可以跳转到指定的代码块,而Java中的Label是为循环设计,方便在多重循环中使用break和continue。 在多重循环中,我们经常有需求跳...

2018-08-01 22:44:43 711

原创 归并排序(Java)

归并排序是分治法的经典应用,主要思路是将待排序数组分为两个(或两个以上)的子数组进行排序,再将这两个子数组合并为一个有序表。时间复杂度:O(nlogn)空间复杂度:O(n)public static void mergeSort(int[]a,int begin,int end) { int mid = (begin+end)/2; if(begin<end) { mergeS...

2018-07-07 10:00:44 191

原创 堆排序(java版本)

思路:构造大顶堆,将堆顶元素和最后一个元素交换,从新调整大顶堆,重复此过程完成排序。节点i的父节点为: (i-1)/2;节点i的左子树为:i*2+1;节点i的右子树为:i*2+2;调整大顶堆时注意要从最后一课子树从下向上调整public static void heapsort(int[] a){ int i; for(i=a.length/2-1;i>=0;i--){...

2018-05-03 10:45:05 303 1

原创 腾讯实习校招一面

面试共两个小时,面试官还算友好,第一次大厂面试。1. 平时有什么项目?2.给你n个数,和为100的是一对,求一共有多少对这样的组合?3.用什么map,hashmap查找和插入的时间复杂度?4. 若n比较大,无法加载到内存,如何解决?5.演示了下项目,询问某个功能的实现6.自定义布局是哪些?7.Android了解多少?8. Tab功能如何实现?9.Androi...

2018-04-13 20:16:20 2269 3

原创 SharedPreference 保存图像数据

原则上SharedPreferences 只能将字符串以key-value形式保存,但可以采用编码的方式将任何二进制数据转化成字符串形式,从而将二进制数据保存在SharedPreferences文件中。所以可以将图像转化成字符串再保存到SharedPreferences中,将二进制转化成字符串的编码格式采用了Base64。将图像保存到SharedPreferences文件代码如下:SharedPr...

2018-03-06 18:28:14 640

原创 jvm内存模型

大多数JVM将内存区域划分为:方法区、虚拟机栈、程序计数器、堆、本地方法栈。其中方法区和堆是线程共享的。1.程序计数器程序计数器类似于传统CPU模型中的PC,每次指定执行后自增,维护下一个将要执行指令的地址。作用是当前线程所执行字节码的行号指示器,JVM中是通过线程切换并分配时间片执行来实现的,任何一个时刻,一个处理器内核只会执行一条线程中的指令,为了线程切换后能恢复到正确的执行位置,每条线程都需...

2018-03-02 21:18:09 217

原创 Android布局优化

一、include布局页面逐渐多时,会存在多个页面含有同一个布局的情况,也就数多个页面公用了一些UI组件,例如自定义标题栏,每个页面使用相同的统一的标题栏使各个页面标题效果基本保持一致,这个标题栏就是各个页面的公共组件,如果每个页面重复定义这个标题布局,修改时会带来大量重复工作,针对这种场景,Android提供了include标签,用于将一个布局引入到一个布局中我们自定义一个标题栏,将这个标题栏独...

2018-03-01 21:28:13 328

原创 leetcode:739. Daily Temperatures 单调栈

Given a list of daily temperatures, produce a list that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for which thi

2017-12-20 22:42:25 1287

原创 Android自定义布局:ViewGroup

前面的文章介绍了自定义View,自定义View中重写了ondraw()函数,绘制我们需要的图形,重写了onMeasure函数,实现View的wrap_content属性,完成了View的测量。ViewGroup是对View进行管理的布局,例如LinearLayout和Framelayout等等,本文主要介绍自定义View的实现。View的工作流程View的工作流程主要是指measu

2017-12-01 14:23:47 415

原创 View的滑动

滑动在Android开发中具有很重要的作用,本文在自定义控件的基础上实现view的滑动,自定义控件的实现可以参考之前的博文:自定义控件(一),自定义控件(二)。一、Android坐标系描述一个物体的运动,就必须要选择一个参考系,在Android中,屏幕左上角的顶点作为Android坐标系的原点,向右是X轴正方向,向下试Y轴正方向

2017-10-25 15:30:38 313

原创 sizeof——类和结构体

一个类的大小和数据成员有很大的关系,总结下sizeof(类)的各种情况首先看一个空类的大小:class A{ };int main(){ cout<<sizeof(A)<<endl;//输出结果1 return 0;}类中没有任何成员变量,sizeof(A)的结果是1,书上说编译器插入了一个char,使得这个class的不同实体在内存中配置独一无二的地址。

2017-10-12 20:16:05 679 1

原创 基于四元组的图像hash方法

像素级别的图像hash方法过于敏感,对于噪声、滤波、压缩等攻击非常不鲁棒,最近读到一篇文献,利用四元组表示彩色图像,基于图像几何和图像特征分别计算hash,形成的hash值鲁棒性比较高,有效的抵抗了各种攻击,文献的算法用于图像的篡改检测,我们主要学习其中鲁棒的hash提取方法。一、四元组四元组是一个四维的复数,包括一个实部三个虚部:    四元组中i,j,k遵守下面的规则:

2017-10-11 10:47:55 1321

原创 Android自定义控件(二)

上篇文章通过继承view定义了一个圆形控件,在界面上绘制一个圆形,并且根据不同的测量模式设置了不同的大小:自定义控件(一) 。但是我们定义的圆形在界面设计时半径、颜色都已经固定了,本文主要总结如何像原生控件一样,通过在xml文件中设置属性来控制圆形的半径以及颜色,并在圆形中心显示一段文字首先要定义控件的属性名称,在values文件夹中新建attrs.xml文件,声明属性的名称和类型:

2017-10-06 16:22:49 474

原创 Android自定义控件总结

Android 为我们提供了丰富的UI组件,同时也提供了方便的扩展方法,通过继承Android的系统组件,可以方便的扩展现有功能,本文总结下我的自定义控件学习历程。首先从最简单的画个圆开始,自定义一个控件,显示一个蓝色的圆形,

2017-10-02 11:53:06 490

原创 Android入门项目(二):手机防盗器的开发(1)

目标:防盗,当手机被盗远离口袋时发出报警声音,其原理是使用手机内置的距离传感器,检测到距离变化时播放报警声音知识点:了解服务(service)的使用方法,调用手机传感器,播放声音利用service后台监控手机的距离传感器,若检测到距离变化则播放报警声音

2017-09-07 16:46:59 741 2

原创 Android入门项目(一):BMI体质指数计算器

目标:开发一款体质指数计算器,实现输入身高体重即可判断体型是否正常知识点:Activity;布局;基本组件的使用BMI是体质指数,公认的一种评定个人体质肥胖程度的分级方法,具体的计算方法是以体重除以身高的平方公式如下体质指数(BMI)=体重(kg)/身高(m)^2实现BMI需要用户输入身高体重,并点击计算按钮,显示结果,使用EditText实现用户身高的输入,使用textv

2017-09-03 16:38:07 25434 4

转载 STL里的multimap使用简介

标准库定义了一个 multimap 容器,它与 map 类似,所不同的是它允许重复键。这个属性使得 multimap 比预想的要更有用:比如在电话簿中相同的人可以有两个以上电话号码,文件系统中可以将多个符号链接映射到相同的物理文件,或DNS服务器可以将几个URLs映射到相同的IP地址。在这些场合,你可以象下面这样:// 注: 伪码 multimap phonebook

2017-08-30 21:22:08 293

原创 map和set容器自定义比较函数

将元素插入map和set中时,容器会根据设定的比较函数将该元素放到相应节点上,在定义容器时,如果没有指定比较函数,那么采用默认的比较函数,及按照键值由小到大的顺序插入元素,很多情况下,需要自己编写比较函数,map和set内部的数据结构都是红黑树,所以比较函数是一致的,编写方法有两种:(1)如果元素不是结构体,那么可以编写比较函数,下面程序编写的比较规则是按照键值由大到小顺序插入ma

2017-08-27 21:56:56 1382

原创 LeetCode 84. Largest Rectangle in Histogram 单调栈应用

单调栈即栈内元素必须单调增或者单调减,假设有数组arr[2,1,5,6,2,3],求数组中每个数字左右两边离他最近的比他小的数,  2:   左边—无      右边—11:   左边—无      右边—无5:   左边—1    右边—2。。。最容易想到的方法是对于每个数字,分别从左遍历到此位置找到左边最近且最小的数字,从右遍历到此位置找到右边最近且最小的数字,对于

2017-08-17 10:04:30 858

原创 LeetCode200. Number of Islands 基础dfs

题目:https://leetcode.com/problems/number-of-islands/description/dfs寻找联通区域个数,使用递归会超时,要用栈模拟递归,代码如下:class Solution {public: void dfs(vector> grid,vector> &visited ,int i,int j){

2017-08-16 08:40:52 378

原创 字典树的应用:求数组中异或最大的两个数

求数组中异或最大的两个数,题目参考LeetCode:https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/description/hdoj :http://acm.hdu.edu.cn/showproblem.php?pid=4825最暴力也最容易想到的是遍历数组中每一个数,计算与其他数的异或,

2017-08-15 11:53:46 771

原创 LeetCode 648. Replace Words 字典树练习

In English, we have a concept called root, which can be followed by some other words to form another longer word - let's call this word successor. For example, the root an, followed by other, whic

2017-08-15 11:23:42 985

原创 Leetcode 142. Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Note: Do not modify the linked list.题意:找到循环链表的循环开始位置设置快指针一次走2步和慢指针一次走1步同时遍历链表,若快指针最后和慢指针指向同一节

2017-08-13 17:22:24 333

原创 最大子序列和

求最大子序列的和是一道经典的动态规划题目:给一个数组,求出数组中和最大的子序列,输出最大的和,有些题目还需要输出子序列的开始和结束位置:题目参考:LeetCode :https://leetcode.com/problems/maximum-subarray/description/hdoj  :http://acm.hdu.edu.cn/showproblem.php?pid=100

2017-08-13 12:50:16 551

原创 Leetcode :Intersection of Two Arrays 两个数组的交集

LeetCode349. Intersection of Two ArraysGiven two arrays, write a function to compute their intersection.Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].Note:Each

2017-08-12 09:45:54 310

原创 Android将camera获取到的YuvData在jni中转化为Mat

Android中可以通过camera获取图像,并实时处理,不同的手机camera支持的的图像格式不同,可以采用getCameraPreviewFormat来得到preview支持的图像编码格式,Android默认使用NV21(yuv420sp)的图像格式,因为大部分手机都支持。为了达到实时处理的目的,很多时候我们将得到的yuv数据直接传入jni中的c++使用,减少上层转化图像格式的过程yuv4

2017-08-10 22:04:09 5026

原创 Leetcode495 Teemo Attacting

// C++In LOL world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned condition. Now, given the Teemo's attacking ascending time series towards Ashe and the poison

2017-08-09 22:40:55 595

原创 Android 通过jni返回Mat数据类型

Android 开发过程中为了实现代码的高效性,通常要调用本地c++代码,JNI是java语言提供的和c/c++相互沟通的机制,在使用opencv做图像处理时,通常要调用c/c++代码进行相关操作,将处理后的结果返回java进行显示或者其他操作。可以在java部分创建一个Mat,用于保存图像处理结果图像,获取Mat 的本地地址传入jni函数中:// javaMat res = n

2017-07-30 22:09:54 4471 14

转载 hdu图论题目

=============================以下是最小生成树+并查集======================================【HDU】1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better

2017-07-30 13:53:53 1943

原创 Android 使用SharePerference实现判断是否为第一次登陆

很多app中在第一次安装登陆时会有引导欢迎界面,第二次打开时就不再显示引导页面。这个功能可以通过使用SharePreferences将用户的登陆信息保存起来,当app启动时判断登陆信息决定打开页面。以下是创建的SharePreference类:public class SharePreference { Context context; public SharePref

2017-03-10 12:20:43 3440 3

原创 Android 一键退出应用

最近的项目中需要点击按钮一键退出系统,方法总结如下:1.通过发送一条特殊的广播,每个Activity在收到广播之后调用finish方法关闭自己即可2.在application中通过一个Activity类型的list记录应用中已经打开的Activity,需要退出应用时,遍历List中的Activity,分别调用finish方法结束Activity即可。3.定义了一个空的activity,...

2017-02-25 18:31:14 609

原创 《谈话的力量》

一、通过提问促进交谈1,多提开放式问题,怎么样、为什么、以何种方式。2,提问题保持愿意倾听的态度。3,尽量保持双重视角,换位思考。4,不要预设答案提问题,例如:以一定很宅吧?说说你平时都做什么。二、表达诚实的称赞  行为——>鼓励——>增加  行为——>忽视——>减少1,忽视不喜欢的行为,比惩戒效果更好。    对

2017-02-25 18:23:14 848

原创 c语言中的移位

学过c语言的朋友一定知道移位运算:>>右移,>右移k位,则丢弃最低的k为,左移k位最低的k位补0。例如:11111111 >> 4 =0000111111111111 << 4 =111111110000刚刚学习完c语言我也是这样理解的,前段时间看了《深入理解计算机系统》中,才看到逻辑右移和算术右移的分别,真是年少无知啊!!!有一个相应的右移运算x>>k,按照我之前的理解是直接丢弃

2017-02-25 18:08:33 1268

原创 《乌合之众》笔记

1.群体中,每个人的个性都会慢慢消失,他们的感情与思想都在关注同一件事情,群体中的个人完全不同与独立的个人。2.群体的中的个人,丧失了独立意识,成了一个行为靠本能,而不是依靠理智而决定的动物。从众是件很可怕的事,记得有一次在一个超市的地下车库,找不到上超市的路,寻找中看到一些人都朝着某个方向走,便跟了上去,在车库绕来绕去的途中,悠悠很多人加入了我们的队伍,没人知道这个队伍是不是去超市的,单

2017-02-25 18:08:28 779

空空如也

空空如也

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

TA关注的人

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