oden的博客

私信 关注
oden.su
码龄10年
  • 157,196
    被访问量
  • 80
    原创文章
  • 44,564
    作者排名
  • 51
    粉丝数量
  • 于 2011-02-09 加入CSDN
获得成就
  • 获得49次点赞
  • 内容获得55次评论
  • 获得82次收藏
荣誉勋章
兴趣领域
  • #Android
    #gradle#RxJava#Kotlin
TA的专栏
  • linux
    1篇
  • nodejs
    1篇
  • UI设计
    1篇
  • 后端开发
    15篇
  • docker
    1篇
  • kubernetes
    1篇
  • android案例
    10篇
  • android学习
    19篇
  • android基础
    17篇
  • react-native
    8篇
  • 微信小程序
    3篇
  • 创建组件
  • 跨平台开发
    1篇
  • 数据库
    5篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Linux定时任务cron详解

定时任务以root身份打开/etc/crontab文件,在其中添加下面这一行分钟,0表示整点;小时,17表示下午5点;日期,星号“*”表示一个月中的每一天;月份,星号“*”表示一年中的每个月;星期,星号“*”一星期中的每一天;以哪个用户身份执行命令,这里是root;需要执行的命令。# 每天下午5点(差不多刚好是下班的时间)以root身份将/media/station/document/book目录下所有的doc文件打包成book.tar.gz,并且存放在闪存/media/disk
原创
4阅读
0评论
0点赞
发布博客于 6 小时前

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';隐式转换当操作符与不同类型的操作对象一起使用时,就会发生类型转换以使操作兼容
原创
58阅读
0评论
0点赞
发布博客于 4 月前

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
原创
18阅读
1评论
0点赞
发布博客于 4 月前

mqttjs各属性说明

概述本文结合mqttjs和mqtt 5.0协议介绍各属性的作用连接属性说明var mqtt = require('mqtt')var topic = 'test_topic'// 连接选项const options = { // 客户标识符(ClientID)识别客户端。连接服务端的每个客户端都有唯一的客户标识符(ClientID)。客户端和服务端都必须使用客户标识符(ClientID)识别两者之间的 MQTT 会话相关的状态 // 客户标识符只能包含大写字母、小写字母和数字
原创
85阅读
0评论
0点赞
发布博客于 6 月前

移动端UI设计基础

概念UI 界面设计:静态用户界面设计,注重规范和美感UE 交互设计:用户交互设计,注重人机交互、用户操作尺寸单位概念像素:构成图像的最小单位,相同规格的界面,像素越多图片越清晰ppi(屏幕像素密度):像素数/图像英寸,即每英寸图像拥有的像素数,像素密度越高,显示越清晰dpi(平面设计/印刷艺术单位):每英寸所能印刷的网点数,值越大,精度越高,ppi=dpiAndroid分辨率与单位转换Android程序开发统一使用虚拟尺寸单位:dp/dip,spdp/dip:用于Android元
原创
56阅读
0评论
0点赞
发布博客于 6 月前

Kubernetes小记-基本概念和术语

KubernetesKubernetes是基于容器技术的分布式架构领先方案,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。Kubernetes提供了强大的自动化机制,所以系统后期的运维难度和运维成本大幅度降低。基本概念和术语Node、Pod、Replication Controller、Service等都可以被看作一种资源对象,几乎所有资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作并将其保存在etcd中持久化存
原创
63阅读
0评论
0点赞
发布博客于 8 月前

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
原创
74阅读
0评论
0点赞
发布博客于 8 月前

Docker小记-Docker Compose

命令Compose描述完整的环境以及服务组件的交互。一个Compose文件可能会描述四到五个单独的服务,它们都是相互关联的,但应保持隔离和独立伸伸缩。启动:进入创建docker-compose.yml文件的目录并运行以下的命令:docker-compose up查看日志(想只看到一个或多个服务,就给出那些服务的命名)docker-compose logs列出当前目录下yml文件定义的所有容器docker-compose ps清理环境docker-compose sto
原创
40阅读
0评论
0点赞
发布博客于 9 月前

Docker小记-Dockerfile

Dockerfiledocker build构建镜像:–tag(或-t)选项的值指定了你想要使用的完整仓库设计。下例中,使用了ubuntu-git:auto。最后的参数则指定了Dockerfile的位置,表示在当前目录寻找文件。docker build 命令还有另外一个选项–file(或-f),这个选项让你能够设置Dockerfile的名字。Dockerfile是默认的文件名字。这个选项只能设置文件的名字,而不能设置文件的位置。最后一个参数是设置位置如果需要完整地从零开始构建,使用–no-cac
原创
65阅读
0评论
0点赞
发布博客于 9 月前

Docker小记-从容器构建镜像

从容器构建镜像步骤:根据最终想要的东西包选择一个已存在的镜像来创建一个容器。修改这个容器的文件系统。这些改动会被保存在容器的联合文件系统的新文件层改动完成后将这些改动提交(commit)。一旦改动被提交,你就能够从新镜像创建新的容器了。 // 这条命令会启动一个运行bash shell的新容器。基于这个shell,你就能够输入命令来自定义你的容器了 docker run -it -name image-dev ubuntu:latest /bin/bashdocker commit
原创
100阅读
0评论
0点赞
发布博客于 9 月前

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
原创
61阅读
0评论
0点赞
发布博客于 9 月前

Docker小记-网络

Docker的网络Docker使用操作系统的底层特性构建了一个特殊的、可定制的虚拟网络拓扑结构。这个虚拟网络只在安装有Docker的机器上有效,并并且它由主机上的容器和主机所连接的网络之间的路由构成。本地虚拟网络用来提供容器的隔离,Docker使用内核命名空间来创建私有的虚拟接口,但是命名空间本身并不提供网络的隔离。网络暴露或者隔离是通过主机的防火墙规则四种网络容器原型Closed容器docker run 命令后添加–net none 作为参数来创建一个Closed 容器Closed容器中
原创
33阅读
0评论
0点赞
发布博客于 9 月前

Docker小记-存储卷

概念存储卷是容器目录树上的挂载点,是一个数据分割、持久化和共享的工具,有一个与容器无关的范围或生命周期。每一个存储卷就是容器目录树的挂载点在主机目录树中的位置,但不同的存储卷类型在主机的位置是不同的绑定挂载存储卷使用用户提供的主机目录或文件管理存储卷使用由Docker守护进程控制的位置,被称为Docker管理空间镜像适合打包和分发相对静态的文件,如程序;存储卷则持有动态或专门数据。这种区别使得镜像可重用,数据也可以简单分享。绑定挂载卷绑定挂载卷是一种存储卷,指向主机文件系统上用户指
原创
70阅读
0评论
0点赞
发布博客于 9 月前

Docker小记-镜像

镜像docker镜像:是一个容器中运行程序的所有文件的捆绑快照。镜像包含了创建容器所需的文件和镜像元数据。该元数据包含关于镜像之间的关联信息、命令历史、暴露的端口、卷的定义等。镜像维护着父/子依赖关系。在这些依赖关系中,从父层构建形成新的一层。容器中的文件是镜像所创建容器的所有层合集。镜像可以与任何其他镜像有依赖关系,包括不同的所有者提供的不同仓库的镜像。容器中正在运行的程序对镜像分层一无所知,仿佛该操作不是在容器中或操作镜像上运行的。从容器的角度看,它具有由镜像所提供文件的独占副本。(这就是所
原创
31阅读
0评论
0点赞
发布博客于 9 月前

Docker小记-Docker中运行软件

Docker是什么Docker包括一个命令行程序、一个后台守护进程,以及一组远程服务。它解决了常见的软件问题,并简化了安装、运行、发布和删除软件。这一切能够实现是通过使用一项UNIX技术,称为容器。Docker不提供容器技术,它隐藏了直接和容器软件打交道的复杂性。Docker容器与虚拟机的区别虚拟机:提供虚拟的硬件,可安装一个操作系统和其他程序。它们需要很长的时间(通常以分钟计)来创建,也需要显著的资源开销,因为它们除了要执行你需要的软件,还得运行整个操作系统的副本。(操作系统是所有用户程序和
原创
62阅读
0评论
0点赞
发布博客于 9 月前

Linux监控工具nmon

nmon是一种在linux操作系统上广泛使用的监控与分析工具,能在系统运行过程中实时捕捉系统资源的使用情况,并输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。下载与安装apt install nmonnmon用法nmon -f -F demo.nmon -s 1 -c 10 -t-f:输出文件,文件名为默认名称-F : 自定义输出文件名称-s: ...
原创
40阅读
0评论
0点赞
发布博客于 10 月前

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());...
原创
162阅读
0评论
0点赞
发布博客于 10 月前

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...
原创
85阅读
0评论
0点赞
发布博客于 1 年前

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...
原创
119阅读
0评论
0点赞
发布博客于 1 年前

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...
原创
263阅读
0评论
0点赞
发布博客于 1 年前

linux服务器性能监控常用命令

top实时监控系统运行状态,并且可以按照cup及内存进行排序参数:-p:监控指定进程,以逗号分隔任务区命令:M:按内存使用率排序P:按CPU使用率排序z:彩色/黑白显示参数说明:load average:系统运行队列平均利用率,分别表示最后1分钟、5分钟、15分钟的平均负载值满负载值为1*cpu核数vmstat监控操作系统进程状态、内存、虚拟内存、磁盘IO、C...
原创
100阅读
0评论
0点赞
发布博客于 1 年前

MongoDB笔记

概述非关系型数据库键值数据库:redis、flare:极高的读写性能,用于处理大量数据的高访问负载,主要用作缓存文档型数据库:MongoDB:满足海量数据存储,对字段要求不严格,不需要预先定义表结构,并发写入速度高列存储数据库:Hbase:查找速度快,可拓展性强图数据库:InfoGrid、Neo4J:适用于关系图谱MongoDB快速入门概念:集合Collection-文档...
原创
250阅读
0评论
0点赞
发布博客于 2 年前

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...
原创
2164阅读
8评论
2点赞
发布博客于 2 年前

SQL必知必会-笔记

SQL必知必会-笔记基础概念SQL 语句不区分大小写,因此 SELECT 与 select 是相同的。许多 SQL 开发人员喜欢对 SQL 关键字使用大写,而对列名和表名使用小写,这样做使代码更易于阅读和调试。所有空格都被忽略。 SQL 语句可以写成长长的一行,也可以分写在多行。除非你确实需要表中的每一列,否则最好别使用*通配符,检索不需要的列通常会降低检索和应用程序的性能...
原创
64阅读
0评论
1点赞
发布博客于 2 年前

fragment懒加载

fragment懒加载懒加载主要依赖Fragment的setUserVisibleHint(boolean isVisible)方法,当Fragment变为可见时,会调用setUserVisibleHint(true);当Fragment变为不可见时,会调用setUserVisibleHint(false),且该方法调用时机:onAttach()之前,调用setUserVisibleHin...
原创
678阅读
0评论
1点赞
发布博客于 2 年前

Android文件下载及解压

下载工具类public class DownloadUtil { private static DownloadUtil downloadUtil; private final OkHttpClient okHttpClient; private boolean isDestroy = false; public static DownloadUtil get(...
原创
339阅读
1评论
1点赞
发布博客于 2 年前

Android转场动画的实现

实现从activityA到activityBif (android.os.Build.VERSION.SDK_INT &gt;= android.os.Build.VERSION_CODES.LOLLIPOP) { ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation...
原创
664阅读
0评论
2点赞
发布博客于 2 年前

揭露动画效果Circular Reveal的使用及封装

使用调用原生方法,常规使用 // 先设置FloatingActionButton的点击事件,然后直接在onClick中进行动画操作 @Override public void onClick(View v) { // 获取FloatingActionButton的中心点的坐标 int centerX = (v.getLeft() + v.getR...
原创
489阅读
0评论
1点赞
发布博客于 3 年前

一键切换正式环境和测试环境

gradle.properties配置变量#正式服务器和测试服务器切换isDebugServer=truegradle定义变量android { buildTypes { debug { if (isDebugServer.toBoolean()) { buildConfigField "boolean",...
原创
589阅读
0评论
1点赞
发布博客于 3 年前

bitmap工具,长截图及截图合并

长图截图以scrollview为例子,截取scrollview中的所有内容,如果是截取单个view,方式一样,bitmap宽高直接取view的宽高/** * 获取长截图 * @return */public Bitmap getFullScreenBitmap() { int h = 0; Bitmap bitmap; for (int i = 0; i &lt...
原创
782阅读
0评论
1点赞
发布博客于 3 年前

ViewPager实现图片切换特效

简介实现如下效果实现要点ViewPager,显示左右两边,并留出一定间距,整个viewpger响应触摸事件利用PageTransformer给viewpager添加切换动画,透明度及图片大小过渡变化的效果实现ViewPager显示左右两边利用View的android:clipChildren属性 clipChildren:父View是否束缚子View的显...
原创
1267阅读
0评论
1点赞
发布博客于 3 年前

提高开发效率-使用Android Studio Template快速生成模板文件

简介Android Studio Template 依靠 FreeMarker 引擎,将事先定义好的模板文件生成我们所需的 class 文件、layout 文件等等,可以极大减少样板式代码的编写。模板位置,Windows 的路径在 /plugins/android/lib/templates/,Mac 下是 Android Studio.app/Contents/plugins/andro...
原创
1314阅读
0评论
1点赞
发布博客于 3 年前

Android自定义view-继承LinearLayout

直接在代码中通过代码动态生成public class MyView extends LinearLayout { private Button button; public MyView(final Context context) { super(context); button = new Button(context); ...
原创
2555阅读
0评论
1点赞
发布博客于 3 年前

Jenkins实现android自动打包 上传蒲公英及fir.im

下载jenkinshttps://jenkins.io/index.html 下载后得到jenkins.msi文件,直接安装访问http://localhost:8080选择安装推荐的插件之后进入主界面创建项目选择构建一个自由风格的软件项目 配置如下 保存后点击立即构建即可开始构建,构建成功后项目目录下会生成apk自动上传应用到蒲公英...
原创
3498阅读
0评论
1点赞
发布博客于 3 年前

ReactNative基础-props使用详解

什么是propsprops是属性,它是为了描述组件的特征而存在的,它是父组件传递给子组件的。如何使用props属性是只读的;如果是上个页面传递过来的属性,就不能修改;但它可以在本页面定义默认属性。 ES6定义默认属性static defaultProps={ name:'小红'}这样,当父组件没有给子组件传递属性时,就可以使用默认属性。属性的类型检查...
原创
251阅读
0评论
1点赞
发布博客于 3 年前

ReactNative基础-创建组件的三种方式

方式一 ES6创建组件的方式export default class HelloComponent extends Component { render() { return (&lt;Text style={{fontSize:20,backgroundColor:'red'}}&gt;Hello sun&lt;/Text&gt;);}}方式二 ES5创建组件的方式...
原创
1264阅读
0评论
1点赞
发布博客于 3 年前

Android开源库-自定义相机模块

简介相机模块库,自定义相机,通过简单的调用即可实现拍照、图片裁剪、录像及录像抓拍功能; 实现图片压缩,减少图片体积;自定义相机可避免使用系统相机导致的照片或视频体积过大问题; 内置相机及sd卡权限获取的处理; github链接如下,帮忙star支持下~ github链接实现功能: - 拍照 - 图片裁剪 - 录像 - 录像抓拍在项目中导入该库在工程...
原创
3527阅读
0评论
1点赞
发布博客于 3 年前

微信小程序-SASS开发环境搭建(mac)

安装sudo gem install sass sass -vwebstorm配置命令查看sass安装路径:which sasswebstorm-prefrences-tools-file watcher中进行配置program输入第一步中sass地址,一般默认就是Arguments输入:–no-cache –update FileNameFileNameFileName...
原创
4405阅读
0评论
1点赞
发布博客于 3 年前

微信小程序wepy框架笔记

该框架是腾讯内部基于小程序的开发框架,设计思路基本参考VUE,开发模式和编码风 格上80%以上接近VUE优势组件化开发小程序虽然有标签可以实现组件复用,但仅限于模板片段层面的复用,业务代码与交互事件 仍需在页面处理。无法实现组件化的松耦合与复用的效果。 wepy组件示例 // index.wpy
原创
19322阅读
0评论
4点赞
发布博客于 3 年前

微信小程序中使用wxss加载图片并实现动画

微信小程序中使用wxss加载图片并实现动画记录微信小程序中使用wxss加载图片并实现动画的方式,最终实现loading效果。代码.weui-loading {margin: 0 5px;width: 20px;height: 20px;display: inline-block;vertical-align: middle;animation: a 1s steps(12) infini
原创
18765阅读
1评论
1点赞
发布博客于 4 年前

Electron结合React开发桌面应用

# Electron结合React开发桌面应用## 环境搭建前提是安装好npm和nodejs,安装以下开发环境,若安装失败则尝试翻墙或者使用淘宝镜像cnmpelectron环境安装npm install -g electron-prebuiltnpm install -g electron-packagercreate-react-app安装npm install -g create-re
原创
6102阅读
2评论
1点赞
发布博客于 4 年前

React Native实现二维码扫描

基于react-native-camera依赖包导入步骤详细步骤可看github上的说明,简要记录如下: 1. npm install react-native-camera –save 2. react-native link react-native-cameraandroid手动link方式: 1. android/settings.gradle加入: include ‘:rea
原创
948阅读
0评论
1点赞
发布博客于 4 年前

Redux笔记

需要安装的库npm install –save redux npm install –save react-redux npm install –save redux-thunk npm install –save redux-logger使用redux的场景某个组件的状态,需要共享某个状态需要在任何地方都可以拿到一个组件需要改变全局状态一个组件需要改变另一个组件的状态设计思想We
原创
452阅读
0评论
0点赞
发布博客于 4 年前

Kotlin使用简要笔记

Kotlin使用简要笔记基础语法定义变量可变类型 变量名:数据类型可变类型分为var、val两种,分别代表可变、不可变;var id: Int = 5 var name: String = "jack"val useVal: Int = 1000Kotlin是支持类型推导,在定义变量时可以不显式声明类型,而通过赋值来确定变量类型。val b = 2 // `Int` 类型是自推导的val
原创
505阅读
0评论
0点赞
发布博客于 4 年前

Android自定义view-CircleSeekbar

自定义view练手,效果图如下: 实现功能可设置圆环颜色和线宽及触摸后的颜色和线宽可设置圆环内圈显示的文本内容及字体大小、颜色可设置触摸点的图片可设置触摸的有效范围使用示例<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an
原创
1395阅读
1评论
1点赞
发布博客于 4 年前

React Native中ScrollableTabView与Navigator的结合使用

react native中ScrollableTabView使用Navigator跳转时,跳转后的页面仍存在ScrollableTabView导航栏,解决方案记录如下。错误示例ScrollableTabView放入各个tab显示页面,带有跳转功能的页面直接用Navigator包裹,导致跳转到其他页面后底部仍存在导航栏。render() { let tabNames = this.st
原创
1342阅读
0评论
0点赞
发布博客于 4 年前

Retrofit+RxJava 简单封装

本文对Retrofit+RxJava的使用进行简单封装,简化使用。 请求结果统一封装成HttpResult类,并利用泛型对不通结果统一处理。 上一篇文章:Retrofit简要笔记导入导入依赖 //导入retrofit,的版本号必须一样 compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.
原创
1315阅读
0评论
0点赞
发布博客于 4 年前

Retrofit简要笔记

本文整理记录常用注解的用法导入retrofit github链接 导入依赖 //导入retrofit,三个包的版本号必须一样 compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareu
原创
1104阅读
0评论
0点赞
发布博客于 4 年前

React Native环境搭建与apk打包

以下内容为在window下开发React Nativ时环境搭建及APK打包的笔记,Mac下的后面补充更新。环境搭建1、安装Node.js与Git2、如果没有合适的梯子,先设置镜像 npm config set registry https://registry.npm.taobao.org –global npm config set disturl https://npm.taobao.org
原创
775阅读
0评论
0点赞
发布博客于 4 年前

Android自定义view-图片选色器

简介本文介绍该自定义view的使用及实现的方法,主要实现以下几个功能: - 选取圆盘选色图片上的颜色,实时监听 - 可设置选色指示图片,跟随触摸位置、指示所选颜色,示例中为白色圆环 - 可自己设置选色图片(目前只支持圆形图片)github链接使用效果首先看下使用效果: 使用示例在项目中导入该库在工程的 build.gradle中加入:allprojects { reposit
原创
1577阅读
0评论
0点赞
发布博客于 4 年前

利用Dagger2构建的简易MVP框架

简介本文使用dagger2构建MVP框架,目的是加深dagger2的理解,一个小demo,记录分享之。 相关文章: Android Mvp实践 Android中利用泛型简化MVP总体框架工程目录结构整个工程的目录结构如下: base文件夹存放一些公用的基类文件,di文件夹存放依赖注入相关的代码,mvp中按功能模块划分。本demo实现的功能为:通过点击界面上的按钮,获取手机系统时间并显示。
原创
2275阅读
0评论
1点赞
发布博客于 4 年前

Android中使用SVG

SVG简介SVG 的文件里存储了绘制图片的相关信息,在要用图的时候再把图画出来,所以在图片显示的时候会花费更多的时间消耗更多的资源。SVG 的文件体积远小于传统的位图文件,因为没有存储任何图像的像素信息。 SVG的文件画出来的图像是矢量图,所以不会存在失真的问题,理论上支持任何级别的缩放,适应性强于传统的位图。SVG简单使用获取SVG文件SVG图片下载地址 选择要下载的图片,下载时选择sv
原创
2394阅读
0评论
0点赞
发布博客于 4 年前

Android数据库管理-ActiveAndroid

ActiveAndroid是一个轻量级的ORM框架,可以以类的方式简单快捷地进行数据库的管理,而无需编写一个单独的SQL语句。 ActiveAndroid git地址配置1、AndroidManifeset中添加如下配置: <application ... android:name="com.activeandroid.app.Application"
原创
943阅读
0评论
0点赞
发布博客于 4 年前

Android单元测试-Mockito

本文为Mockito使用的学习笔记。Mockito概念相关添加 Mockito 依赖 testCompile "org.mockito:mockito-core:2.0.57-beta"Mockito.mock()并不是mock一整个类,而是根据传进去的一个类,mock出属于这个类的一个对象,并且返回这个mock对象;而传进去的这个类本身并没有改变,用这个类new出来的对象也没有受到任何改变
原创
1427阅读
0评论
0点赞
发布博客于 4 年前

Android单元测试-Junit

基本用法实际操作1、新建测试类public class Caculation { public double sum(double numA, double numB) { return numA + numB; } public double multiply(double numA, double numB) { return numA *
原创
514阅读
0评论
0点赞
发布博客于 4 年前

git基础(三)-创建与合并分支

本文为利用Git创建与合并分支测试记录。 1、创建与合并分支命令如下:查看分支:git branch创建分支:git branch name切换分支:git checkout name创建+切换分支:git checkout –b name合并某分支到当前分支:git merge name删除分支:git branch –d name2、git checkout –b dev创建dev分支,加入测
原创
705阅读
0评论
0点赞
发布博客于 4 年前

git基础(二)-版本回退

本文为利用git进行版本回退的示例 1、文件修改后提交:文件右键–git–Commit File,或者直接点击工具栏上的图标2、在Version Control中可查看各个版本所进行的修改,点击文件可查看文件内容 3、查看历史记录: git log 或者 git log –pretty=oneline 4、回退版本:(最后的数字表示为回退几个版本) git reset –hard HEA
原创
692阅读
0评论
0点赞
发布博客于 4 年前

git基础(一)-新建git仓库

1、git下载链接:http://git-scm.com/download/2、在当前工程根目录下,右键选择git Bash Here,在弹出的命令框中输入git init新建git仓库 3、设置git路径 4、在version control中添加本工程的路径并选择git 5、点击ok后,工程目录下的文件名称变为红色:指定仓库路径后,未Add的文件6、project视图中项目右键,选择g
原创
973阅读
0评论
4点赞
发布博客于 4 年前

RxBus

代码public class RxBus { private final Subject<Object, Object> bus; // PublishSubject只会把在订阅发生的时间点之后来自原始Observable的数据发射给观察者 private RxBus() { bus = new SerializedSubject<>(PublishSubje
原创
454阅读
0评论
0点赞
发布博客于 4 年前

unity3d与android交互

简述实现unity3d导出到android studio工程并封装为library,供其他工程导入module直接使用。 最终效果: - 点击ZoomIn、ZoomOut的按钮,通过android端调用unity中方法,进行放大放小; - 触摸unity中的3D立方体,调用android端的ShowDialog调用android端的方法显示原生的dialog。最近看了下unity3d,关于un
原创
900阅读
0评论
0点赞
发布博客于 5 年前

Android中利用泛型简化MVP

简介封装MvpFragment以及MvpPresenter,简化MVP的构建,达到偷懒的目的。 可以参考之前的另一篇文章: Android Mvp实践: http://blog.csdn.net/yaodong379/article/details/51184460最终使用效果Fragment和Presenter只需分别继续MvpFragmen、MvpPresenter即可进行绑定。Activi
原创
3586阅读
1评论
0点赞
发布博客于 5 年前

Android自定义颜色渐变的拖动条

Android自定义颜色渐变的拖动条<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:useLevel="false"> <solid android:color="#252B39"/> <corners and
原创
915阅读
0评论
0点赞
发布博客于 5 年前

Android获取两条线之间的夹角度数

Android获取两条线之间的夹角度数核心代码centerX、centerY为公共点,xInView、yInView为触摸点的坐标 /** *获取两条线的夹角 * @param centerX * @param centerY * @param xInView * @param yInView * @return */ p
原创
3948阅读
1评论
0点赞
发布博客于 5 年前

Android简易手势密码开源库

Android简易手势密码开源库简介本文介绍一个Android手势密码开源库的使用及实现的详细过程,该开源库主要实现以下几个功能: - 支持手势密码的绘制,并支持密码保存功能,解锁时自动比对密码给出结果 - 封装了绘制密码的方法,比对两次密码是否一致,可以快捷地进行手势密码的设置 - 可以设置密码输入错误后的重试次数上限 - 可以自定义不同状态下手势密码图案的颜色 - 可以自定义手势密码的
原创
6444阅读
8评论
3点赞
发布博客于 5 年前

使用google service定位服务

使用google service定位服务概述使用google service的API实现定位功能,封装成一个小模块。需要安装google service相关的sdk包,手机需要装有google服务框架等。主要是国外产品使用,国内需要翻墙,这里做下记录。 导入: compile 'com.google.android.gms:play-services-location:9.4.0'使用初
原创
3897阅读
3评论
2点赞
发布博客于 5 年前

Android ViewPager实现引导页

Android ViewPager实现引导页概述利用ViewPager简单地实现引导页功能,到达最后一页后再次滑动跳转到其他Activityxml布局放入ViewPager控件,同时放入几个小圆点图片用来指示当前滑到第几页<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.andro
原创
681阅读
0评论
0点赞
发布博客于 5 年前

andorid circle progress dialog

自定义一个好看的圆形进度条,可直接在布局文件中使用,也可通过简单的代码直接调用dialog显示,用于用户等待提示 详见博客:http://blog.csdn.net/yaodong379/article/details/52081932
zip
发布资源于 5 年前

简单好看的圆形进度条对话框开源库

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

利用JitPack发布Android开源库

利用JitPack发布Android开源库发布步骤Gradle版本需在2.4以上 1、在项目的根节点的 build.gradle中添加如下代码:buildscript { dependencies { classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' // Add this line2、在要发布的libr
原创
999阅读
0评论
1点赞
发布博客于 5 年前

android webview demo

android webview demo 博客:http://blog.csdn.net/yaodong379/article/details/51960451
zip
发布资源于 5 年前

webview使用小结

webview使用小结总结整理下webview的使用用法小结布局文件直接放入webview,同时放入一个progessbar用来显示网页的打开进度。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:la
原创
663阅读
0评论
1点赞
发布博客于 5 年前

腾讯Bugly异常监控集成

腾讯Bugly异常监控集成本文对bugly的集成及使用做简单的整理及说明集成Bugly SDK在Module的build.gradle文件中添加依赖和属性配置:dependencies { compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.1.5}
原创
11081阅读
0评论
1点赞
发布博客于 5 年前

利用ObjectAnimator实现ArcMenu

直接调用,快捷实现arcmenu,供参考,详见博客http://blog.csdn.net/yaodong379/article/details/51824779
java
发布资源于 5 年前

利用ObjectAnimator实现ArcMenu

利用ObjectAnimator实现ArcMenu本文介绍利用ObjectAnimator简单地实现ArcMenu,直接使用本文的ArcMenu类即可快捷地实现菜单功能。
原创
593阅读
1评论
2点赞
发布博客于 5 年前

Annotation常用注解使用说明

Annotation常用注解使用说明简介AndroidAnnotations是一个开源框架,通过使用它开放出来的注解api,可以大大的减少无关痛痒的代码量,简洁代码。 官方文档_github链接第三方库导入目前最新版本为4.0.0在app/目录下的build.gradle(局部gradle)中添加下面粗体字配置:applyplugin:’com.android.application’ **ap
原创
2361阅读
0评论
0点赞
发布博客于 5 年前

自定义AlertDialog主题

# 自定义AlertDialog主题解决以下几个问题: - andoird5.0后,dialog的按钮上英文字全为大写的现象 - 使android5.0后button上的字体变为白色 - 解决在5.0以下版本会出现的窗口重叠现象
原创
2265阅读
1评论
0点赞
发布博客于 5 年前

RecyclerView基本使用

RecyclerView基本使用控件初始化 private BleListAdapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @ViewById RecyclerView mRecyclerView; @AfterViews void initView() {
原创
358阅读
0评论
0点赞
发布博客于 5 年前

自定义ProgressBar颜色样式

自定义ProgressBar颜色样式使用 <ProgressBar android:id="@+id/pro_search" android:layout_width="30dp" android:layout_height="30dp" android:layout_centerVertical="t
原创
551阅读
0评论
0点赞
发布博客于 5 年前

Android二维码生成与扫描

Android二维码生成与扫描本文介绍使用Zxing3.1第三方库,完成二维码的生成与扫描。第三方库导入Zxing3.1第三方库 直接import module,将上面的第三方库导入。 在导入后如果用到的icon或者字符串资源名称一样,可能会报错,解决方法(以label名重复为例): 1.在Manifest标签下添加 xmlns:tools=”http://schemas.android.c
原创
1574阅读
1评论
0点赞
发布博客于 5 年前

Andorid二维码zing3.1库

Andorid二维码生成与解析的库,zing3.1
zip
发布资源于 5 年前

android_mvp实践

参考google官方发布的MVP架构demo以及前人对MVP实现方式的一些总结做的一个简单demo,可参考博客http://blog.csdn.net/yaodong379/article/details/51184460
zip
发布资源于 5 年前

Android Mvp实践

Android Mvp实践简介本文是参考google官方发布的MVP架构demo以及前人对MVP实现方式的一些总结做的一个简单demo,在这里记录一下一点心得,希望能给想用MVP的人一点帮助。 总体框架工程目录结构首先先看下整个工程的目录结构: 目录的代码组织方式是按照功能来组织的,功能内部分为xactivity、xcontract、xfragment、xpresenter四个类文件(x代表
原创
1144阅读
1评论
0点赞
发布博客于 5 年前

RxAndroid基础使用_测试工程

RxAndroid的基础使用测试代码,可以参考博客http://blog.csdn.net/yaodong379/article/details/51116367。 使用基础语法进行测试而非lambda,方便初学者参考。
zip
发布资源于 5 年前

RxAndroid基础

RxAndroid 基础参考hi大头鬼hi 的微博,写代码进行测试学习,以下记录共享,同时以便之后查阅。 由于不熟悉lambda,同时开始学习也不建议直接使用lambda,以下大部分代码均使用常规方法编写。RxJava在github上的地址 RxAndroid在github上的地址首先,工程中引入:dependencies { compile fileTree(dir: 'libs', i
原创
2871阅读
1评论
3点赞
发布博客于 5 年前

android后台线程轮询服务器获取推送消息

android后台线程轮询服务器获取推送消息转载请标明出处:http://blog.csdn.net/yaodong379/article/details/50625948; 本文出自:oden的博客简介本文通过建立一个线程,在后台持续轮询获取服务器推送消息,主要实现以下几个功能:建立线程类,做到可直接调用,于后台自动轮询服务器消息,并对获取的消息进行处理获取广告等推广信息,通过notific
原创
7711阅读
1评论
0点赞
发布博客于 5 年前

android微信自动抢红包

详情参考博客:http://blog.csdn.net/yaodong379/article/details/50625948; 微信自动抢红包代码,供参考学习;
zip
发布资源于 5 年前

android微信自动抢红包源码

详情参考博客:http://blog.csdn.net/yaodong379/article/details/50625948; 微信自动抢红包代码,供参考学习;
zip
发布资源于 5 年前

android实现微信自动抢红包

android实现微信自动抢红包本文介绍微信自动抢红包的实现方法,主要实现以下几个功能:自动拆开屏幕上出现的红包 处于桌面或聊天列表时接收到红包信息时自动进入聊天界面并拆红包日志功能,记录抢红包的详细日志实现原理利用AccessibilityService辅助服务,监测屏幕内容,实现自动拆红包的目的。利用ActiveAndroid数据库简单记录红包日志利用preference
原创
8305阅读
19评论
3点赞
发布博客于 5 年前

dsp builder做的am调制器

根据官网手册,用matlab中dsp builder做的am调制器例子,仿真成功。编译后可下载到quartus2中,供学习参考。
zip
发布资源于 8 年前

sp builder做的DDS

用matlab中dsp builder做的dds,内含两种方案,一种较简单,另一种较复杂。仿真成功,编译后可下载到quartus2中,供学习参考。
zip
发布资源于 8 年前

dsp builder做的正弦信号发生器

用matlab中dsp builder做的正弦信号发生器,仿真成功。编译后可下载到quartus2中,供学习参考。
zip
发布资源于 8 年前

用dspbuilder做的FSK调制器

用matlab中dsp builder做的FSK调制器,仿真成功。编译后可下载到quartus2中,供学习参考。
zip
发布资源于 8 年前

用dsp builder做的ASK振幅调制器

用matlab中dsp builder做的ASK振幅调制器,仿真成功。可下载到quartus2中,供学习参考。
zip
发布资源于 8 年前

音频信号发生器

音频信号发生器,可按照需要输出一定的音频信号并调整音频信号的增益,也可扫频输出所需范围的音频信号。
rar
发布资源于 8 年前

电感设计软件

非常不错的一款电感设计的软件,只需输入长度、直径和圈数即可显示电感量,并可设计修正系数。
exe
发布资源于 8 年前

xilinx12.3破解文件

xilinx12.3的破解文件,测试通过!!
lic
发布资源于 8 年前

单片机等定时器计数器计算器

单片机定时器计数器计算器,简单方便的一款小工具
exe
发布资源于 8 年前

单片机延时计算小程序

单片机延时计算小程序,一个电路设计的小工具
exe
发布资源于 8 年前

555定时器电路设计软件v1.2

555定时器电路设计软件v1.2,电路设计的一个小工具
EXE
发布资源于 8 年前

低通滤波器设计工具

低通滤波器设计的一款小工具,希望你们喜欢。
rar
发布资源于 8 年前