- 博客(83)
- 资源 (28)
- 收藏
- 关注

原创 ViewPager实现图片切换特效
简介实现如下效果实现要点ViewPager,显示左右两边,并留出一定间距,整个viewpger响应触摸事件利用PageTransformer给viewpager添加切换动画,透明度及图片大小过渡变化的效果实现ViewPager显示左右两边利用View的android:clipChildren属性 clipChildren:父View是否束缚子View的显...
2018-08-20 23:55:04
1709

原创 Jenkins实现android自动打包 上传蒲公英及fir.im
下载jenkinshttps://jenkins.io/index.html 下载后得到jenkins.msi文件,直接安装访问http://localhost:8080选择安装推荐的插件之后进入主界面创建项目选择构建一个自由风格的软件项目 配置如下 保存后点击立即构建即可开始构建,构建成功后项目目录下会生成apk自动上传应用到蒲公英...
2018-06-02 16:16:46
4166

原创 Android开源库-自定义相机模块
简介相机模块库,自定义相机,通过简单的调用即可实现拍照、图片裁剪、录像及录像抓拍功能; 实现图片压缩,减少图片体积;自定义相机可避免使用系统相机导致的照片或视频体积过大问题; 内置相机及sd卡权限获取的处理; github链接如下,帮忙star支持下~ github链接实现功能: - 拍照 - 图片裁剪 - 录像 - 录像抓拍在项目中导入该库在工程...
2018-03-16 23:13:33
4560

原创 Retrofit+RxJava 简单封装
本文对Retrofit+RxJava的使用进行简单封装,简化使用。 请求结果统一封装成HttpResult类,并利用泛型对不通结果统一处理。 上一篇文章:Retrofit简要笔记导入导入依赖 //导入retrofit,的版本号必须一样 compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.
2017-04-25 00:12:23
1513

原创 Android自定义view-图片选色器
简介本文介绍该自定义view的使用及实现的方法,主要实现以下几个功能: - 选取圆盘选色图片上的颜色,实时监听 - 可设置选色指示图片,跟随触摸位置、指示所选颜色,示例中为白色圆环 - 可自己设置选色图片(目前只支持圆形图片)github链接使用效果首先看下使用效果: 使用示例在项目中导入该库在工程的 build.gradle中加入:allprojects { reposit
2017-04-12 21:02:39
2017

原创 unity3d与android交互
简述实现unity3d导出到android studio工程并封装为library,供其他工程导入module直接使用。 最终效果: - 点击ZoomIn、ZoomOut的按钮,通过android端调用unity中方法,进行放大放小; - 触摸unity中的3D立方体,调用android端的ShowDialog调用android端的方法显示原生的dialog。最近看了下unity3d,关于un
2016-12-21 20:39:07
1081

原创 Android简易手势密码开源库
Android简易手势密码开源库简介本文介绍一个Android手势密码开源库的使用及实现的详细过程,该开源库主要实现以下几个功能: - 支持手势密码的绘制,并支持密码保存功能,解锁时自动比对密码给出结果 - 封装了绘制密码的方法,比对两次密码是否一致,可以快捷地进行手势密码的设置 - 可以设置密码输入错误后的重试次数上限 - 可以自定义不同状态下手势密码图案的颜色 - 可以自定义手势密码的
2016-08-25 21:55:30
7147
2

原创 简单好看的圆形进度条对话框开源库
简单好看的圆形进度条对话框开源库简介本文介绍CircleProgressDialog开源库的使用及实现的详细过程,该开源库主要实现以下几个功能: - 自定义一个好看的圆形进度条,可直接在布局文件中使用,可设置圆环宽度、圆环颜色、圆环阴影大小等属性; - 实现自定义的dialog,用于用户等待时的显示,通过简单的代码即可直接调用显示,同时提供api进行颜色、文字等设置通过本文可了解到自定义view
2016-08-01 00:05:33
3988

原创 RxAndroid基础
RxAndroid 基础参考hi大头鬼hi 的微博,写代码进行测试学习,以下记录共享,同时以便之后查阅。 由于不熟悉lambda,同时开始学习也不建议直接使用lambda,以下大部分代码均使用常规方法编写。RxJava在github上的地址 RxAndroid在github上的地址首先,工程中引入:dependencies { compile fileTree(dir: 'libs', i
2016-04-10 23:50:49
3062

原创 android实现微信自动抢红包
android实现微信自动抢红包本文介绍微信自动抢红包的实现方法,主要实现以下几个功能:自动拆开屏幕上出现的红包 处于桌面或聊天列表时接收到红包信息时自动进入聊天界面并拆红包日志功能,记录抢红包的详细日志实现原理利用AccessibilityService辅助服务,监测屏幕内容,实现自动拆红包的目的。利用ActiveAndroid数据库简单记录红包日志利用preference
2016-02-02 22:32:12
9873
2
原创 Redis进阶小记
排序SORT命令可以对列表类型、集合类型和有序集合类型键进行排序,并且可以完成与关系数据库中的连接查询相类似的任务。SORT命令还可以通过ALPHA参数实现按照字典顺序排列非数字元素,如果没有加ALPHA参数的话,SORT命令会尝试将所有元素转换成双精度浮点数来比较,如果无法转换则会提示错误。SORT命令的DESC参数可以实现将元素按照从大到小的顺序排列:SORT命令还支持LIMIT参数来返回指定范围的结果。用法和 SQL 语句一样,LIMIT offset count,表示跳过前 off
2021-08-10 23:05:10
243
原创 Redis数据基本操作
概述redis数据保存在内存redis命令不区分大小写,一般用小写redis是一个单线程、但进程的数据库字符串用来记录简单的映射关系,用于小量级的数据记录虽名为字符串,但也可以存储数字获取的key的值不存在,则返回None// 列出所有keys *// 创建set key value// 获取,若获取不存在的key则返回(nil)get key// 修改set key 新的值// 修改不覆盖set key value NX// 尾部添加其他字符append ke
2021-08-10 23:00:30
263
原创 shell核心语法
第一个shell#!/bin/bashecho "Hello World !"#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。运行chmod +x ./test.sh #使脚本具有执行权限./test.sh #执行脚本变量字符串your_name="qinjx"echo $your_nameecho ${your_name}your_name='runoob'str="Hello, I know you are \"$yo
2021-04-29 21:10:19
813
3
原创 Linux定时任务cron详解
定时任务以root身份打开/etc/crontab文件,在其中添加下面这一行分钟,0表示整点;小时,17表示下午5点;日期,星号“*”表示一个月中的每一天;月份,星号“*”表示一年中的每个月;星期,星号“*”一星期中的每一天;以哪个用户身份执行命令,这里是root;需要执行的命令。# 每天下午5点(差不多刚好是下班的时间)以root身份将/media/station/document/book目录下所有的doc文件打包成book.tar.gz,并且存放在闪存/media/disk
2021-03-03 23:10:54
1617
2
原创 mysql小记-查询不走索引的场景
函数操作对条件字段做函数操作select * from t1 where date(c) ='2019-05-21';优化:改成 c 字段实际值相匹配的形式。因为 SQL 的目的是查询 2019-05-21 当天所有的记录,因此可以改成范围查询select * from t1 where c>='2019-05-21 00:00:00' and c<='2019-05-21 23:59:59';隐式转换当操作符与不同类型的操作对象一起使用时,就会发生类型转换以使操作兼容
2020-10-29 23:14:38
434
原创 mysql小记-分析SQL执行效率
定位慢 SQL慢查询日志MySQL 的慢查询日志用来记录在 MySQL 中响应时间超过参数 long_query_time(单位秒,默认值 10)设置的值并且扫描记录数不小于 min_examined_row_limit(默认值 0)的语句默认情况下,也不会记录查询时间不超过 long_query_time 但是不使用索引的语句,可通过配置 log_queries_not_using_indexes = on 让不使用索引的 SQL 都被记录到慢查询日志中开启慢查询日志set global s
2020-10-29 23:13:21
397
1
原创 mqttjs各属性说明
概述本文结合mqttjs和mqtt 5.0协议介绍各属性的作用连接属性说明var mqtt = require('mqtt')var topic = 'test_topic'// 连接选项const options = { // 客户标识符(ClientID)识别客户端。连接服务端的每个客户端都有唯一的客户标识符(ClientID)。客户端和服务端都必须使用客户标识符(ClientID)识别两者之间的 MQTT 会话相关的状态 // 客户标识符只能包含大写字母、小写字母和数字
2020-08-27 22:05:46
911
原创 移动端UI设计基础
概念UI 界面设计:静态用户界面设计,注重规范和美感UE 交互设计:用户交互设计,注重人机交互、用户操作尺寸单位概念像素:构成图像的最小单位,相同规格的界面,像素越多图片越清晰ppi(屏幕像素密度):像素数/图像英寸,即每英寸图像拥有的像素数,像素密度越高,显示越清晰dpi(平面设计/印刷艺术单位):每英寸所能印刷的网点数,值越大,精度越高,ppi=dpiAndroid分辨率与单位转换Android程序开发统一使用虚拟尺寸单位:dp/dip,spdp/dip:用于Android元
2020-08-27 22:02:26
484
原创 Kubernetes小记-基本概念和术语
KubernetesKubernetes是基于容器技术的分布式架构领先方案,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。Kubernetes提供了强大的自动化机制,所以系统后期的运维难度和运维成本大幅度降低。基本概念和术语Node、Pod、Replication Controller、Service等都可以被看作一种资源对象,几乎所有资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作并将其保存在etcd中持久化存
2020-07-02 23:05:38
216
原创 Docker小试-制作jekyll镜像
提供两种制作jekyll镜像的方式及最终的镜像文件方式一,进入容器中制作镜像拉取ubuntu18.04镜像:docker pull ubuntu:18.04运行并进入容器:docker run -it --rm --name ubuntu_base ubuntu:18.04 /bin/sh安装相关依赖apt-get updateapt-get upgradeapt-get install build-essentialapt-get install ruby ruby-devgem i
2020-07-02 23:04:15
302
原创 Docker小记-Docker Compose
命令Compose描述完整的环境以及服务组件的交互。一个Compose文件可能会描述四到五个单独的服务,它们都是相互关联的,但应保持隔离和独立伸伸缩。启动:进入创建docker-compose.yml文件的目录并运行以下的命令:docker-compose up查看日志(想只看到一个或多个服务,就给出那些服务的命名)docker-compose logs列出当前目录下yml文件定义的所有容器docker-compose ps清理环境docker-compose sto
2020-06-01 23:07:48
296
原创 Docker小记-Dockerfile
Dockerfiledocker build构建镜像:–tag(或-t)选项的值指定了你想要使用的完整仓库设计。下例中,使用了ubuntu-git:auto。最后的参数则指定了Dockerfile的位置,表示在当前目录寻找文件。docker build 命令还有另外一个选项–file(或-f),这个选项让你能够设置Dockerfile的名字。Dockerfile是默认的文件名字。这个选项只能设置文件的名字,而不能设置文件的位置。最后一个参数是设置位置如果需要完整地从零开始构建,使用–no-cac
2020-06-01 23:06:59
306
原创 Docker小记-从容器构建镜像
从容器构建镜像步骤:根据最终想要的东西包选择一个已存在的镜像来创建一个容器。修改这个容器的文件系统。这些改动会被保存在容器的联合文件系统的新文件层改动完成后将这些改动提交(commit)。一旦改动被提交,你就能够从新镜像创建新的容器了。 // 这条命令会启动一个运行bash shell的新容器。基于这个shell,你就能够输入命令来自定义你的容器了 docker run -it -name image-dev ubuntu:latest /bin/bashdocker commit
2020-06-01 23:06:14
559
原创 Docker小记-安全隔离
Docker资源分配内存限制docker run或docker create命令上使用-m或–memory选项来设置内存限制这个选项会接受一个值和一个基础单元作为参数。格式如下:where unit = b,k,m or g在这个命令中,b表示字节,k表示千字节,m表示兆字节,g表示千兆字节。docker run -d --name mydb \--m 256m \--cpu-shares 1024 \--user nobody \--cap-drop all \dockerfil
2020-06-01 23:05:21
327
原创 Docker小记-网络
Docker的网络Docker使用操作系统的底层特性构建了一个特殊的、可定制的虚拟网络拓扑结构。这个虚拟网络只在安装有Docker的机器上有效,并并且它由主机上的容器和主机所连接的网络之间的路由构成。本地虚拟网络用来提供容器的隔离,Docker使用内核命名空间来创建私有的虚拟接口,但是命名空间本身并不提供网络的隔离。网络暴露或者隔离是通过主机的防火墙规则四种网络容器原型Closed容器docker run 命令后添加–net none 作为参数来创建一个Closed 容器Closed容器中
2020-06-01 23:04:25
189
原创 Docker小记-存储卷
概念存储卷是容器目录树上的挂载点,是一个数据分割、持久化和共享的工具,有一个与容器无关的范围或生命周期。每一个存储卷就是容器目录树的挂载点在主机目录树中的位置,但不同的存储卷类型在主机的位置是不同的绑定挂载存储卷使用用户提供的主机目录或文件管理存储卷使用由Docker守护进程控制的位置,被称为Docker管理空间镜像适合打包和分发相对静态的文件,如程序;存储卷则持有动态或专门数据。这种区别使得镜像可重用,数据也可以简单分享。绑定挂载卷绑定挂载卷是一种存储卷,指向主机文件系统上用户指
2020-06-01 23:02:40
216
原创 Docker小记-镜像
镜像docker镜像:是一个容器中运行程序的所有文件的捆绑快照。镜像包含了创建容器所需的文件和镜像元数据。该元数据包含关于镜像之间的关联信息、命令历史、暴露的端口、卷的定义等。镜像维护着父/子依赖关系。在这些依赖关系中,从父层构建形成新的一层。容器中的文件是镜像所创建容器的所有层合集。镜像可以与任何其他镜像有依赖关系,包括不同的所有者提供的不同仓库的镜像。容器中正在运行的程序对镜像分层一无所知,仿佛该操作不是在容器中或操作镜像上运行的。从容器的角度看,它具有由镜像所提供文件的独占副本。(这就是所
2020-06-01 23:00:59
285
原创 Docker小记-Docker中运行软件
Docker是什么Docker包括一个命令行程序、一个后台守护进程,以及一组远程服务。它解决了常见的软件问题,并简化了安装、运行、发布和删除软件。这一切能够实现是通过使用一项UNIX技术,称为容器。Docker不提供容器技术,它隐藏了直接和容器软件打交道的复杂性。Docker容器与虚拟机的区别虚拟机:提供虚拟的硬件,可安装一个操作系统和其他程序。它们需要很长的时间(通常以分钟计)来创建,也需要显著的资源开销,因为它们除了要执行你需要的软件,还得运行整个操作系统的副本。(操作系统是所有用户程序和
2020-06-01 22:58:56
415
原创 Linux监控工具nmon
nmon是一种在linux操作系统上广泛使用的监控与分析工具,能在系统运行过程中实时捕捉系统资源的使用情况,并输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。下载与安装apt install nmonnmon用法nmon -f -F demo.nmon -s 1 -c 10 -t-f:输出文件,文件名为默认名称-F : 自定义输出文件名称-s: ...
2020-05-06 22:31:37
212
原创 code-push搭建
安装code-push代码下载到本地:git clone https://github.com/lisong/code-push-server.gitcd code-push-servernpm install解决跨域访问:npm install cors在app.js中加入var cors = require('cors')app.use(cors());...
2020-05-06 22:11:25
382
原创 Nginx入门到实践
本文是对Nginx常用配置的整理及记录。配置文件目录 /etc/nginx/nginx.conf默认配置语法user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connection...
2020-03-08 11:39:05
327
原创 ubuntu中安装mysql8.0
本文记录mysql8.0安装过程安装步骤cd /usr/local下载仓储:wget -c https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb安装仓储:sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb更新仓储:sudo apt update安装mysql:sudo apt-ge...
2020-02-29 23:08:00
244
原创 ubuntu中mysql安装及简单配置(在线安装方式)
本文使用的版本为5.5.62或5.7.29,使用apt-get方式直接进行安装。安装执行命令:sudo apt-get install mysql-server查看是否安装成功:sudo netstat -tap | grep mysql服务启动后端口查询:sudo netstat -anp | grep mysql跳过MySQL的密码认证过程,重置密码进入vim /etc/my...
2020-02-29 13:03:13
477
原创 linux服务器性能监控常用命令
top实时监控系统运行状态,并且可以按照cup及内存进行排序参数:-p:监控指定进程,以逗号分隔任务区命令:M:按内存使用率排序P:按CPU使用率排序z:彩色/黑白显示参数说明:load average:系统运行队列平均利用率,分别表示最后1分钟、5分钟、15分钟的平均负载值满负载值为1*cpu核数vmstat监控操作系统进程状态、内存、虚拟内存、磁盘IO、C...
2020-02-25 23:35:09
255
原创 MongoDB笔记
概述非关系型数据库键值数据库:redis、flare:极高的读写性能,用于处理大量数据的高访问负载,主要用作缓存文档型数据库:MongoDB:满足海量数据存储,对字段要求不严格,不需要预先定义表结构,并发写入速度高列存储数据库:Hbase:查找速度快,可拓展性强图数据库:InfoGrid、Neo4J:适用于关系图谱MongoDB快速入门概念:集合Collection-文档...
2019-09-30 17:03:16
2488
原创 sequelize笔记
安装npm install --save sequelize# 选择对应的安装:$ npm install --save pg pg-hstore # Postgres$ npm install --save mysql2$ npm install --save mariadb$ npm install --save sqlite3$ npm install --save tedio...
2019-07-28 23:28:38
4607
8
原创 SQL必知必会-笔记
SQL必知必会-笔记基础概念SQL 语句不区分大小写,因此 SELECT 与 select 是相同的。许多 SQL 开发人员喜欢对 SQL 关键字使用大写,而对列名和表名使用小写,这样做使代码更易于阅读和调试。所有空格都被忽略。 SQL 语句可以写成长长的一行,也可以分写在多行。除非你确实需要表中的每一列,否则最好别使用*通配符,检索不需要的列通常会降低检索和应用程序的性能...
2019-06-20 23:59:22
439
原创 fragment懒加载
fragment懒加载懒加载主要依赖Fragment的setUserVisibleHint(boolean isVisible)方法,当Fragment变为可见时,会调用setUserVisibleHint(true);当Fragment变为不可见时,会调用setUserVisibleHint(false),且该方法调用时机:onAttach()之前,调用setUserVisibleHin...
2019-05-18 14:04:09
898
原创 Android文件下载及解压
下载工具类public class DownloadUtil { private static DownloadUtil downloadUtil; private final OkHttpClient okHttpClient; private boolean isDestroy = false; public static DownloadUtil get(...
2019-03-14 14:57:53
718
1
原创 Android转场动画的实现
实现从activityA到activityBif (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation...
2019-01-29 11:19:36
1000
andorid circle progress dialog
2016-08-01
android webview demo
2016-07-19
利用ObjectAnimator实现ArcMenu
2016-07-05
android_mvp实践
2016-04-18
RxAndroid基础使用_测试工程
2016-04-11
sp builder做的DDS
2013-07-27
用运放驱动的高性能功放
2011-08-10
LM1875真假鉴别方法,实物图片对比
2011-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人