- 博客(232)
- 资源 (34)
- 收藏
- 关注
原创 【Android】React-Native为Fresco的初始化提供自定义的Configuration
Sodino React-Native界面在启动时会调用Fresco的初始化,即如果Fresco已经初始化过了,也会再重新执行初始化过程一次。具体调用栈如下:这会导致原先的Fresco初始化的配置全部失效,比如缓存大小被改变图片可能过早被清除,失去自定义的NetworkFetcher导致图片下载失败(如果NetworkFetcher涉及添加自定义头信息的话)。该问题在"react-native":
2017-04-01 09:34:01 3173
原创 【Android】方法数查看工具---DexCount
方便快捷好用、简单明了。官方链接:dexcount-gradle-plugin效果图:使用方法:修改 app/build.gradle,添加dexcount依赖:123456789101112buildscript { repositories { mavenCentral() // or jcenter() } dependencies {
2017-02-22 11:41:16 6403 1
原创 【Android】Retrofit 的一些笔记
Sodino 文章目录1. 前言2. Header的统一处理3. 访问绝对路径4. Map的使用避免声明冗余的类5. RequestBody为String 及 文件上传6. 后台Json空数据规范7. 空数据Void声明8. ResponseBody为String9. ResponseBody的多次读取10. 统一的错误处理Retrofit :A type-safe HTTP client for
2017-02-22 11:40:36 1547
原创 【Android】透明状态栏在App中的实现与接口设计
Sodino 文章目录1. 认识透明状态栏2. 透明状态栏Api及特性3. 设置透明状态栏4. 处理消失的系统状态栏区域5. fitsSystemWindows6. Activity中的接口设计7. Fragment中的接口设计8. 白色Titlebar的处理9. React-Native的处理10. 小米 与 魅族 与 (莫名其妙的)华为11. 腾讯优测UTestGitHub源码:Transpa
2017-01-20 18:57:14 3302 1
原创 【Android】Ripple使用总结及ClickableSpan的冲突解决
GitHub源码:Ripple DemoRippleDrawable官方文档链接:RippleDrawable效果图如下:Ripple效果的设置可以在XML布局文件中对 View 的 android:background 属性进行赋值.android:foreground 的Ripple支持仅支持 FrameLayout 或其子类如support-v7中的 CardView.android:for
2016-12-28 16:50:30 3953
原创 【React-Native】开源的入门项目 Solidot
Sodino好久没更新了,灌一篇水文干码。GitHub源码地址应用宝下载地址这是一个完整的App.能从本项目学习到的知识点:纯粹的ES6语法自定义UI组件Titlebar,处理居中等排版问题自适应高度的EditText获取网络图片并根据其大小自动缩放排版Navigator导航的使用列表的更新技巧动态排版支持Gif日期选择控件Cheerio 解析HTML网络请求Get && PostRN与Andro
2016-12-14 17:34:38 1039
原创 【Android】记录Android MediaPlayer的两个bug
SodinoCDN资源设置了防盗链功能,Android客户端这边需要在访问资源时设置约定好的头信息。一开始是希望使用通用头Referer,但对于MediaPlayer的话,在 android 4.X 机型上设置Referer是无效果的….该Bug在android 5.0才恢复。见下图:参考链接:Nexus 5 referer string value is coming as null even
2016-09-01 19:50:39 2430
原创 【Android】Gadle改变应用名称(appName)的两种方法
Sodino1. 应用场景2. 方法一:设置manifestPlaceholders3. 方法二:定义resValue4. 两者比较5. 后记应用场景App在debug/release编译环境下,想通过改变appName来给予区分。productFlavors增加各种编译参数时,比如更换applicationId包名,appName也需要跟着变动。方法一:设置manifestPlaceholder
2016-09-01 18:21:03 14437 3
原创 【Linux】启动mongo db后台服务
文章目录1. 开启mongo db后台服务2. 关闭mongo db服务3. 走过的弯路将mongodb部署在服务器机子上时mongodb的实例应为后台服务进行的方式运行,而非前台进程,否则远程会话一关闭mongodb也跟着关闭了。本文介绍mongodb后台服务进程开启和关闭的操作。参阅链接:Manage mongod Processes开启mongo db后台服务使用--fork参数启动1234
2016-09-01 18:19:28 13988
原创 【Linux】yum卸载mongodb及后续问题的解决
下载3.2.9版本的mongodb安装包后,又不小心,使用了yum安装了mongodb的2.6版本,并且在命令行下运行mongo都只执行低版本的程序。好吧,把2.6版本的卸载掉吧。卸载之前高低版本的mongodb信息如下:卸载过程123456// 找出mongodb相关的安装包yum list installed | grep mongo// 删除指定的安装包,包名由上面的list命令获得yum
2016-08-30 14:16:00 8826
原创 【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\android01\EApp\build\outputs\apk自己手工想去删除也删不了,只能用杀毒工具的粉碎机,好烦。一翻求索之下,找到了
2016-08-30 14:15:21 4556 1
原创 【Node.js】初始化工程时加载全部的node_modules
将Node.js工程提交到Github时,是不会将库文件夹node_modules提交的。那么clone工程后,根据package.json逐一再次install是不明智的。那么可以这么做:123cd // 进入工程文件夹npm init // 再次确认工程基本信息,不是全部的信息npm update --save // 则全部的node_modules自己
2016-08-30 14:14:48 4426
原创 【Linux】tar.xz的解压命令
对于不熟悉的东西,先记下来再说。今天下载到了一份tar.xz结尾的压缩文件,需要解压的话,有两种方式:123// 可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。$ xz -d ***.tar.xz$ tar -xvf ***.tar或者直接使用如下命令来解压1$ tar xvJf ***.tar.xzAbout Sodino
2016-08-29 20:59:21 43099
原创 【Linux】CentOS 7通过Firewall开放防火墙端口
发现在CentOS 7上开放端口用iptables没效果(或者是sodino没找到正确的命令)…使用firewall-cmd开放端口则立即就生效了。见下操作:1234567firewall-cmd --state //查看运行状态// 开放1024的端口firewall-cmd --add-port=1024/tcp permanent// 重载生效刚才的端口设置firewall-cmd --re
2016-08-29 20:58:14 26084
原创 【Windows】Chocolatey以管理员身份安装
命令行安装时,失败,碰到如下语句:12Installation of Chocolatey to default folder requires Administrative permissions. Please run from elevated prompt.有点意外,Windows也要求管理员权限,好吧,原来是右键CMD.exe并以管理员身份启动这样:然后在打开的cmd.exe中运行安装命
2016-08-29 20:57:13 11395
原创 【JavaScript】正则表达式--非贪婪模式截取任意字符串的笔记
Sodino文章目录1. 场景2. 正则表达式一3. 正则表达式二4. 排查问题5. 正则表达式三6. 结论场景要将下面的字符串截取两个{title:***,url:***}来。12345script>{title:'RegExp 对象参考手册',url:'http://sodino.com/regexp.asp'},{title:'w3cSchool script', url:'http://w
2016-06-15 22:21:05 3874 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 $2是指被括号()包起来的\w+。即当要使用变量替换时,$n指第n个用()包起来的表达式的值。要用()包起来呀…‘(>﹏)′ ‘(>﹏)′Sp
2016-06-15 22:20:15 2776
原创 【Node.js】basicAuth中间件的使用
Sodino文章目录1. basicAuth2. 实现3. 完整代码4. 效果截图basicAuthbasicAuth中间件为网站添加身份认证功能,使用该中间件后,用户访问网站必须输入用户名和密码并通过难后才能访问网站。GitHub示例工程源码点击源码链接安装basic-auth1npm install basic-auth --save实现接下来require basic-auth并创建中间件使
2016-06-12 21:49:20 7676
原创 【Node.js】mongoose教程10--聚合(Aggregation)的应用
Sodino文章目录1. 聚合操作(Aggregation Operation)2. 聚合管道(Aggregation Pipeline)3. 找出安装了最多应用的手机4. $project5. $size6. $ifNull7. $sort本文是存储了5个手机数据后再操作的。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo聚合操
2016-06-05 17:10:35 14461
原创 【Node.js】mongoose教程09--删除
Sodino本文是存储了5个手机数据后再操作的。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemoModel#remove()当被Model的实例对象调用时,remove(callback)参数中直接设置为callback回调函数,代码运行后该删除该实例对象自身。当被Model按静态方式调用时,如Phone.remove([crit
2016-06-05 17:09:40 5823
原创 【Node.js】mongoose教程08--更新
Sodino文章目录1. Query.update()2. 全量更新3. 指定字段更新4. 数组的更新本文是存储了5个手机数据后再操作的。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemoQuery.update()官方文档链接12345678910111213141516171819202122232425262728293031
2016-06-05 17:08:29 2359
原创 【Node.js】mongoose教程07--排重与计数
Sodino文章目录1. 排重2. 计数排重本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo12345678910111213141516171819202122232425Query#distinct([field], [criteria], [callback]) Declares
2016-06-05 17:07:05 2636
原创 【Node.js】mongoose教程06--排序
Sodino本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo排序文档链接12345678910111213141516171819Query#sort(arg) Sets the sort orderParameters: arg Object, String>Returns:
2016-06-05 17:05:49 5343
原创 【Node.js】mongoose教程05--查询
Sodino文章目录1. Model与Query2. 查询全部数据3. 条件查询4. 条件查询—数组5. 组合条件查询本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemoModel与QueryModel.find()方法会返回Query对象。Model.find()方法原型如下:1234567
2016-06-05 17:04:51 1415
原创 【Node.js】mongoose教程04--存储
Sodino文章目录1. 数据准备2. 单条数据存储3. 多条数据批量存储请确定已阅读【Node.js】mongoose教程—Schema与ModelGitHub源码链接:sodino#MongoDemo数据准备为了对Phone进行存储以及后续的查询,需要提前准备一些手机型号的数据以供练习使用。为此准备了如下5个手机型号的数据:12345678910111213141516171819202122
2016-06-05 17:03:13 1516
原创 【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 8048
原创 【Node.js】mongoose教程02--开启、关闭数据库,监听数据库事件
Sodino请确定您已阅读mongoose教程—工程搭建GitHub源码链接:sodino#MongoDemoconnection的事件列表可点击查看官方文档或./node_modules/mongoose/lib/connection.js#Connection()12345678910111213141516171819202122232425262728293031323334353637/
2016-06-05 17:00:13 5302
原创 【Node.js】mongoose教程01--工程搭建
Sodino文章目录1. npm命令初始化工程目录2. npm命令安装mongoose3. 启动mongo dbGitHub源码链接:sodino#MongoDemonpm命令初始化工程目录123mkdir MongooseDemo // 创建一个空目录用于工程初始化cd MongooseDemonpm init // 开始执行工程初始化npm命令安装mongoose1npm install
2016-06-05 16:58:36 1289
原创 【Node.js】爬虫--抓取新闻标题、图片、文字描述,支持QQ、iFeng
先上效果图:图片上部分为待解析的网页新闻链接,支持一次输入多个.图片下部分为解析的进度日志打印。点击’Commit’之后,对比效果图如下。左边为腾讯新闻原网页,右边为抓取后的整合效果。GitHub源码链接:Sodino#ImgSpider工程结构:文件名描述app.js程序启动img-spider.js爬虫爬取管理ifengImgs.js爬取iFeng下game/fashion的实现ifengPi
2016-05-31 15:59:36 6449
原创 【Node.js】使用iconv-lite解决中文乱码 (GB2312)
By Sodino 作为新手,碰到问题了就google了一下,网上已经有teary:window下nodejs爬取gb2312网页出现乱码的解决方案出来了。本文和上面的作法几乎相同,只是自己不想引用bufferhelper,自己用JavaScript原生的Buffer替代实现了。代码如下:123456789101112131415161718192021var http = require("ht
2016-05-12 17:46:56 23309
原创 【JavaScript】正则表达式删除代码注释
Sodino 文章目录1. 【JavaScript】正则表达式删除代码注释2. 代码实现与运行效果3. 单行注释 // 的处理4. 多行注释 /* */的处理5. 整合6. 单行注释要排除 http:// 等【JavaScript】正则表达式删除代码注释约定:本文中,以数字内容表示代码正文,其余字符内容表示注释内容。代码注释有三种形式:第一种:1123456 // aabbccdd第二种:1123
2016-05-12 17:45:36 5731
原创 【JavaScript】对象结构的简化--删除Json中的空属性、空数组
By Sodino 文章目录1. 功能描述2. 效果演示3. 代码实现从网上抓取的Json有大片的空属性,想直接干掉精减一下结构。功能描述功能如下:属性值为空字符串、null、undefined的属性支持递归删除,即有些空属性是由于代码执行中产生的,这些属性也要删除效果演示检验代码及效果如下:1234567891011121314151617181920var object = { 'nam
2016-05-12 17:44:16 11314
原创 【JavaScript】 判断空对象区别于null、undefined
{}就是一个空对象,由于没有任何属性和方法,所以可以利用这一特点进行区别:12345678function isEmpty (object) { for (var i in object) { // 存在属性或方法,则不是空对象 reutrn false; } return true;}代码测试如下:12isEmpty({}); // trueisEm
2016-05-12 17:42:50 3873
原创 [JavaScript]继承的真真假假
文章结构继承的判断标准真真假假的继承实现方式构造函数绑定prototype的拷贝直接继承prototypeprototype模式利用空对象JavaScript的继承实现设计得有点遮遮掩掩,对于从强类型语言转向来学习JavaScript的新手来说,是件很费脑瓜子的事情。Sodino作为从Java转向JavaScript的新学员,尝试用这篇文章来理清‘继承’这点事。继承的判断标准考虑到JavaScri
2016-05-10 14:10:12 1834
原创 [JavaScript]构造函数中定义prototype的异常现象及研究
文章结构prototype正常的定义方式构造函数中定义prototype的异常现象(benz instanceof Car) 为false 问题benz.printHistory is not a function 问题总结练习prototype正常的定义方式JavaScript一般构造函数与prototype的定义是分离的,正常的实现方式如下:123456789101112代码一:functio
2016-05-05 22:14:39 3804
原创 [JavaScript]'this'详解
文章结构普通的 this构造函数中的 this对象方法中的 this外漏函数中的 this嵌套函数中的 this篡改函数中的 this严格模式的判断总结后记普通的 this构造函数中的 this使用new操作符调用构造函数生成对象时,构造函数内的this为当前所new出来的对象。12345代码一:function Car() { console.log(this);}new Car();输出
2016-05-04 22:07:01 3487
原创 【Node.js】'readline' 逐行读取、写入文件内容
运用readline逐行读取的两种实现效果图如下:左边1.log 为源文件右边1.readline.log为复制后的文件下边为命令行输出实现方式一:var readline = require('readline');var fs = require('fs');var os = require('os');var fReadName = './1.log';var fWriteName
2016-04-28 16:49:20 41223
转载 Reverse Polish Notation (后缀表达式)
标准的表达式如"A+B",在数学上学名叫中缀表达式(Infix Notation),原因是运算符号在两个运算对象的中间。相对应的还有前缀表达式(Prefix Notation),如:"+ - A * B C D",转换成中缀表达式为:"A - B * C + D";后缀表达式(Postfix Notation),比如前所述的中缀表达式转换为后缀表达式为:"A B C * - D +"。为了纪念波兰
2015-12-07 14:15:23 1353
原创 【Android Studio】jacoco导致cannot find local variable
刚进项目断点调试时一直出现”Cannot find local variable”,如下图:你妹呀!!都不能愉快的撸代码了…抽空一排查,发现是”jacoco”的代码覆盖率影响的,删除下图的testCoverageEnabled true配置即可。口水笔记…======================================排查思路:开发环境问题?是Android Studio?还是JDK?
2015-10-29 18:41:20 12031 2
原创 【Proguard】Proguard混淆时保留行号信息
混淆工程如果不保留行号,则查起Crash时,一一对照mapping文件是非常麻烦的,而且由于java的全名规范,只要方法的参数不一致,即可方法名相同,在这种情况下,更难准确定位出错的方法及具体的代码。如下图,同一个类中被混淆后有三个名字为 a 的方法:解决办法为:混淆时保留行号;具体操作是在工程的proguard-project.txt中添加如下配置:1234# 将.class信息中的类名重新定义
2015-10-29 15:21:12 5380 2
android gallery
2011-07-02
android adt0.9.9
2011-07-02
Android仿通讯录ListView小例子
2011-05-03
TexasHoldem Pokerhand Recognizer
2009-10-30
PacketTracer51_setup05
2009-05-26
PacketTracer51_setup04
2009-05-26
PacketTracer51_setup03
2009-05-26
PacketTracer51_setup02
2009-05-26
PacketTracer51_setup
2009-05-26
SCJP准备资料大资源(第六部分,共六部分)
2009-04-03
SCJP准备资料大资源(第五部分,共六部分)
2009-04-03
SCJP准备资料大资源(第四部分,共六部分)
2009-04-03
SCJP准备资料大资源(第三部分,共六部分)
2009-04-03
SCJP准备资料大资源(第二部分,共六部分)
2009-04-03
SCJP准备资料大资源(共六部分)
2009-04-03
在NetBeans,Eclipse,JBuilder中搭建SonyEricsson模拟器过程文件
2008-12-21
在NetBeans中安装SonyEricsson模拟器
2008-12-21
J2me嵌入式开发中的基础开发环境搭建过程.pdf
2008-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人