自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sodino的专栏

还是自己的窝舒服,跳转至 http://sodino.com 吧。

原创 【Android】React-Native为Fresco的初始化提供自定义的Configuration

Sodino React-Native界面在启动时会调用Fresco的初始化,即如果Fresco已经初始化过了,也会再重新执行初始化过程一次。具体调用栈如下:这会导致原先的Fresco初始化的配置全部失效,比如缓存大小被改变图片可能过早被清除,失去自定义的NetworkFetcher导致图片下载失...

2017-04-01 09:34:01 2423 0

原创 【Android】方法数查看工具---DexCount

方便快捷好用、简单明了。官方链接:dexcount-gradle-plugin效果图:使用方法:修改 app/build.gradle,添加dexcount依赖:123456789101112buildscript { repositories { mavenCentr...

2017-02-22 11:41:16 4917 0

原创 【Android】Retrofit 的一些笔记

Sodino 文章目录1. 前言2. Header的统一处理3. 访问绝对路径4. Map的使用避免声明冗余的类5. RequestBody为String 及 文件上传6. 后台Json空数据规范7. 空数据Void声明8. ResponseBody为String9. ResponseBody的多...

2017-02-22 11:40:36 1124 0

原创 【Android】透明状态栏在App中的实现与接口设计

Sodino 文章目录1. 认识透明状态栏2. 透明状态栏Api及特性3. 设置透明状态栏4. 处理消失的系统状态栏区域5. fitsSystemWindows6. Activity中的接口设计7. Fragment中的接口设计8. 白色Titlebar的处理9. React-Native的处理1...

2017-01-20 18:57:14 2874 1

原创 【Android】Ripple使用总结及ClickableSpan的冲突解决

GitHub源码:Ripple DemoRippleDrawable官方文档链接:RippleDrawable效果图如下:Ripple效果的设置可以在XML布局文件中对 View 的 android:background 属性进行赋值.android:foreground 的Ripple支持仅支持...

2016-12-28 16:50:30 3267 0

原创 【React-Native】开源的入门项目 Solidot

Sodino好久没更新了,灌一篇水文干码。GitHub源码地址应用宝下载地址这是一个完整的App.能从本项目学习到的知识点:纯粹的ES6语法自定义UI组件Titlebar,处理居中等排版问题自适应高度的EditText获取网络图片并根据其大小自动缩放排版Navigator导航的使用列表的更新技巧动...

2016-12-14 17:34:38 874 0

原创 【Android】记录Android MediaPlayer的两个bug

SodinoCDN资源设置了防盗链功能,Android客户端这边需要在访问资源时设置约定好的头信息。一开始是希望使用通用头Referer,但对于MediaPlayer的话,在 android 4.X 机型上设置Referer是无效果的….该Bug在android 5.0才恢复。见下图:参考链接:N...

2016-09-01 19:50:39 2150 0

原创 【Android】Gadle改变应用名称(appName)的两种方法

Sodino1. 应用场景2. 方法一:设置manifestPlaceholders3. 方法二:定义resValue4. 两者比较5. 后记应用场景App在debug/release编译环境下,想通过改变appName来给予区分。productFlavors增加各种编译参数时,比如更换appli...

2016-09-01 18:21:03 12603 3

原创 【Linux】启动mongo db后台服务

文章目录1. 开启mongo db后台服务2. 关闭mongo db服务3. 走过的弯路将mongodb部署在服务器机子上时mongodb的实例应为后台服务进行的方式运行,而非前台进程,否则远程会话一关闭mongodb也跟着关闭了。本文介绍mongodb后台服务进程开启和关闭的操作。参阅链接:Ma...

2016-09-01 18:19:28 12841 0

原创 【Linux】yum卸载mongodb及后续问题的解决

下载3.2.9版本的mongodb安装包后,又不小心,使用了yum安装了mongodb的2.6版本,并且在命令行下运行mongo都只执行低版本的程序。好吧,把2.6版本的卸载掉吧。卸载之前高低版本的mongodb信息如下:卸载过程123456// 找出mongodb相关的安装包yum list i...

2016-08-30 14:16:00 7841 0

原创 【AndroidStudio】解决 Unable to delete dirctory '<project_folder>\build\outputs\apk'

在Windows机器上,使用AndroidStudio执行Build或Clean时经常出现12Error:Execution failed for task ':app:clean'.> Unable to delete directory: D:\EApp\androi...

2016-08-30 14:15:21 3780 1

原创 【Node.js】初始化工程时加载全部的node_modules

将Node.js工程提交到Github时,是不会将库文件夹node_modules提交的。那么clone工程后,根据package.json逐一再次install是不明智的。那么可以这么做:123cd // 进入工程文件夹npm init // 再次确认工程基本信息...

2016-08-30 14:14:48 3497 0

原创 【Linux】tar.xz的解压命令

对于不熟悉的东西,先记下来再说。今天下载到了一份tar.xz结尾的压缩文件,需要解压的话,有两种方式:123// 可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。$ xz -d ***.tar.xz$ tar -xvf ***.tar或者直接使用如下命令来解压1$ ...

2016-08-29 20:59:21 40883 0

原创 【Linux】CentOS 7通过Firewall开放防火墙端口

发现在CentOS 7上开放端口用iptables没效果(或者是sodino没找到正确的命令)…使用firewall-cmd开放端口则立即就生效了。见下操作:1234567firewall-cmd --state //查看运行状态// 开放1024的端口firewall-cmd --add-por...

2016-08-29 20:58:14 25111 0

原创 【Windows】Chocolatey以管理员身份安装

命令行安装时,失败,碰到如下语句:12Installation of Chocolatey to default folder requires Administrative permissions. Please run from elevated prompt.有点意外,Windows也要求管...

2016-08-29 20:57:13 8671 0

原创 【JavaScript】正则表达式--非贪婪模式截取任意字符串的笔记

Sodino文章目录1. 场景2. 正则表达式一3. 正则表达式二4. 排查问题5. 正则表达式三6. 结论场景要将下面的字符串截取两个{title:***,url:***}来。12345script>{title:'RegExp 对象参考手册',url:'ht...

2016-06-15 22:21:05 3433 2

原创 【JavaScript】正则表达式--String.replace()变量替换的一点笔记

1234var re = /(\w+)\s(\w+)/;var str = 'John Smith';var newstr = str.replace(re, '$2, $1');console.log(newstr); // Smith, John$1 ...

2016-06-15 22:20:15 2357 0

原创 【Node.js】basicAuth中间件的使用

Sodino文章目录1. basicAuth2. 实现3. 完整代码4. 效果截图basicAuthbasicAuth中间件为网站添加身份认证功能,使用该中间件后,用户访问网站必须输入用户名和密码并通过难后才能访问网站。GitHub示例工程源码点击源码链接安装basic-auth1npm inst...

2016-06-12 21:49:20 6166 0

原创 【Node.js】mongoose教程10--聚合(Aggregation)的应用

Sodino文章目录1. 聚合操作(Aggregation Operation)2. 聚合管道(Aggregation Pipeline)3. 找出安装了最多应用的手机4. $project5. $size6. $ifNull7. $sort本文是存储了5个手机数据后再操作的。存储实现见文章:【N...

2016-06-05 17:10:35 13256 0

原创 【Node.js】mongoose教程09--删除

Sodino本文是存储了5个手机数据后再操作的。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemoModel#remove()当被Model的实例对象调用时,remove(callback)参数中直接设置为callback回调函数,...

2016-06-05 17:09:40 5377 0

原创 【Node.js】mongoose教程08--更新

Sodino文章目录1. Query.update()2. 全量更新3. 指定字段更新4. 数组的更新本文是存储了5个手机数据后再操作的。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemoQuery.update()官方文档链接12...

2016-06-05 17:08:29 2123 0

原创 【Node.js】mongoose教程07--排重与计数

Sodino文章目录1. 排重2. 计数排重本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo12345678910111213141516171819202122232425Query#d...

2016-06-05 17:07:05 2228 0

原创 【Node.js】mongoose教程06--排序

Sodino本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo排序文档链接12345678910111213141516171819Query#sort(arg) Sets the s...

2016-06-05 17:05:49 4703 0

原创 【Node.js】mongoose教程05--查询

Sodino文章目录1. Model与Query2. 查询全部数据3. 条件查询4. 条件查询—数组5. 组合条件查询本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemoModel与Query...

2016-06-05 17:04:51 1142 0

原创 【Node.js】mongoose教程04--存储

Sodino文章目录1. 数据准备2. 单条数据存储3. 多条数据批量存储请确定已阅读【Node.js】mongoose教程—Schema与ModelGitHub源码链接:sodino#MongoDemo数据准备为了对Phone进行存储以及后续的查询,需要提前准备一些手机型号的数据以供练习使用。为...

2016-06-05 17:03:13 1307 0

原创 【Node.js】mongoose教程03--Schema与Model

Sodino文章目录1. 理解Schema2. Schema的定义3. 创建Model4. 创建数据实例5. Model实例方法6. Model静态方法7. 相关链接GitHub源码链接:sodino#MongoDemo理解Schema传统的MySQL、Oracle等关系型数据库中,在存储数据之前...

2016-06-05 17:01:40 7622 0

原创 【Node.js】mongoose教程02--开启、关闭数据库,监听数据库事件

Sodino请确定您已阅读mongoose教程—工程搭建GitHub源码链接:sodino#MongoDemoconnection的事件列表可点击查看官方文档或./node_modules/mongoose/lib/connection.js#Connection()123456789101112...

2016-06-05 17:00:13 4124 0

原创 【Node.js】mongoose教程01--工程搭建

Sodino文章目录1. npm命令初始化工程目录2. npm命令安装mongoose3. 启动mongo dbGitHub源码链接:sodino#MongoDemonpm命令初始化工程目录123mkdir MongooseDemo // 创建一个空目录用于工程初始化cd MongooseDem...

2016-06-05 16:58:36 1088 0

原创 【Node.js】爬虫--抓取新闻标题、图片、文字描述,支持QQ、iFeng

先上效果图:图片上部分为待解析的网页新闻链接,支持一次输入多个.图片下部分为解析的进度日志打印。点击’Commit’之后,对比效果图如下。左边为腾讯新闻原网页,右边为抓取后的整合效果。GitHub源码链接:Sodino#ImgSpider工程结构:文件名描述app.js程序启动img-spider...

2016-05-31 15:59:36 6026 0

原创 【Node.js】使用iconv-lite解决中文乱码 (GB2312)

By Sodino 作为新手,碰到问题了就google了一下,网上已经有teary:window下nodejs爬取gb2312网页出现乱码的解决方案出来了。本文和上面的作法几乎相同,只是自己不想引用bufferhelper,自己用JavaScript原生的Buffer替代实现了。代码如下:1234...

2016-05-12 17:46:56 18289 0

原创 【JavaScript】正则表达式删除代码注释

Sodino 文章目录1. 【JavaScript】正则表达式删除代码注释2. 代码实现与运行效果3. 单行注释 // 的处理4. 多行注释 /* */的处理5. 整合6. 单行注释要排除 http:// 等【JavaScript】正则表达式删除代码注释约定:本文中,以数字内容表示代码正文,其余字...

2016-05-12 17:45:36 3540 0

原创 【JavaScript】对象结构的简化--删除Json中的空属性、空数组

By Sodino 文章目录1. 功能描述2. 效果演示3. 代码实现从网上抓取的Json有大片的空属性,想直接干掉精减一下结构。功能描述功能如下:属性值为空字符串、null、undefined的属性支持递归删除,即有些空属性是由于代码执行中产生的,这些属性也要删除效果演示检验代码及效果如下:12...

2016-05-12 17:44:16 8870 0

原创 【JavaScript】 判断空对象区别于null、undefined

{}就是一个空对象,由于没有任何属性和方法,所以可以利用这一特点进行区别:12345678function isEmpty (object) { for (var i in object) { // 存在属性或方法,则不是空对象 reutrn false; ...

2016-05-12 17:42:50 3183 0

原创 [JavaScript]继承的真真假假

文章结构继承的判断标准真真假假的继承实现方式构造函数绑定prototype的拷贝直接继承prototypeprototype模式利用空对象JavaScript的继承实现设计得有点遮遮掩掩,对于从强类型语言转向来学习JavaScript的新手来说,是件很费脑瓜子的事情。Sodino作为从Java转向...

2016-05-10 14:10:12 1646 0

原创 [JavaScript]构造函数中定义prototype的异常现象及研究

文章结构prototype正常的定义方式构造函数中定义prototype的异常现象(benz instanceof Car) 为false 问题benz.printHistory is not a function 问题总结练习prototype正常的定义方式JavaScript一般构造函数与pr...

2016-05-05 22:14:39 3579 0

原创 [JavaScript]'this'详解

文章结构普通的 this构造函数中的 this对象方法中的 this外漏函数中的 this嵌套函数中的 this篡改函数中的 this严格模式的判断总结后记普通的 this构造函数中的 this使用new操作符调用构造函数生成对象时,构造函数内的this为当前所new出来的对象。12345代码一:...

2016-05-04 22:07:01 3318 0

原创 【Node.js】'readline' 逐行读取、写入文件内容

运用readline逐行读取的两种实现效果图如下:左边1.log 为源文件右边1.readline.log为复制后的文件下边为命令行输出实现方式一:var readline = require('readline'); var fs = require('fs...

2016-04-28 16:49:20 34216 0

转载 Reverse Polish Notation (后缀表达式)

标准的表达式如"A+B",在数学上学名叫中缀表达式(Infix Notation),原因是运算符号在两个运算对象的中间。相对应的还有前缀表达式(Prefix Notation),如:"+ - A * B C D",转换成中缀表达式为:"A - B ...

2015-12-07 14:15:23 919 0

原创 【Android Studio】jacoco导致cannot find local variable

刚进项目断点调试时一直出现”Cannot find local variable”,如下图:你妹呀!!都不能愉快的撸代码了…抽空一排查,发现是”jacoco”的代码覆盖率影响的,删除下图的testCoverageEnabled true配置即可。口水笔记…=====================...

2015-10-29 18:41:20 10018 2

原创 【Proguard】Proguard混淆时保留行号信息

混淆工程如果不保留行号,则查起Crash时,一一对照mapping文件是非常麻烦的,而且由于java的全名规范,只要方法的参数不一致,即可方法名相同,在这种情况下,更难准确定位出错的方法及具体的代码。如下图,同一个类中被混淆后有三个名字为 a 的方法:解决办法为:混淆时保留行号;具体操作是在工程的...

2015-10-29 15:21:12 4625 2

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