LJ的Blog

学海无涯苦做舟

0%

最近碰到一个情况,Finder无限无响应,然后强制关闭,自动重启,还是无响应。尝试重启,重启之后倒是好了一会,但是打开桌面的某个文件夹还是会出现这个情况。真是日了狗了,仔细回忆了一下,感觉像是自己的一个压缩包解压出现了问题,于是就rm -rf 整个的删掉了那个文件夹,问题就解决了。这里是因为我那个文件夹并没有什么重要的资料,可以这么做,但是如果有重要的资料呢?我也不知道……

阅读全文 »

最近 Android 做了一个全文关键字高亮的功能,直接用了
Java 现成的 API 解决了,在查阅资料的过程中得知还有几种匹配算法:BF、RK、KMP、BM、Sunday,有空就做了一些了解。这里记录一下防止忘记,阮一峰大神关于这些算法的博客写的很好。

BF

暴力检索,这种方法最容易想到,也是最容易实现的,从首字母开始挨个的将关键字和做比对。用下面的图片就能只管的说明(图片来自阮一峰大神的博客)
BF

代码实现:

阅读全文 »

Glide 4.0 以上的版本将很多的 API 都从 Glide 主线这个入口及后续的调用剥离出来了,需要用 GlideApp 来使用。跟着文档走了一遍,愣是生不成,尝试了网上的各种办法都不行。在 CSDN 论坛上看到了一个类似的问题,题主最后一句已解决……日了狗了,你已解决不能发一下你解决的方法么。

网上说的各种 clean make rebuild 都试了,还是不行,最后静下心来仔细看了下项目里用到了 ButterKnife ,而这玩意我也很久没更新了,看了下用的还是 apt ,而 Glide 依赖的编译时注解是 annotationProcessor 于是猜想是这两个之间有什么见不得人的交易导致我无法生成GlideApp。上 ButterKnife 的 git 仓库看了一下,最新的也采用 annotationProcessor 来实现了,愉快的更新了一波,Glide 成功生成了 GlideApp。

阅读全文 »

本篇主要记录一些与数据库有关的操作,本来想看一下python的多线程,来优化一下上一篇的代码,然后看到了 python 的 GIL,恩,多线程先弃了。别我看了半天线程安全,线程池什么的,结果告诉我优化不能。那么就先看一下数据库有关的,方便以后玩出各种花样。

环境

Mac、MySQL 5.7.17,我这里MySQL由于以前弄过jdbc、php啥的,都已经装好了。还需要安装PyMySQL包:

1
$ pip install PyMySQL

反正我执行完这个命令就搞定了,如果各位有什么问题,自己百度,哈哈。

阅读全文 »

思路

因为自己看过很多杂七杂八的东西,所以知道 TextView 本身可以解析一些 html 的标签,而且 Span String 可以花式实现各种样式。这里采用 Span String 的方式实现。实现这个需求的难点在哪呢?刚开始在我看来就是实现关键字匹配,刚开始想用 spilt
方法直接分割自己添加 keyword 取巧,后来细想不行,不是所有的输入都能完成,多个关键字这种方式太复杂。没办法,想起以前学过的 kmp 算法,打开了个网页准备开撸了,忽然想到搜一下全文关键字匹配,很容易的就搜到了 Java 中对应的 API ,搜索也是需要技巧的……不能太过于想当然了。效果图:

图

阅读全文 »

去年就说要看一看 python(其实去年还说要看C++/JavaScript),看了一点儿语法之后一直没再碰过了。最近写 Android 写的头昏脑涨,决定看点 python 换下脑子。由于暂时打算用python玩一下,所以就不深入追究语言细节,只做一些有趣的事情。本文将简单的提及以下内容:

  • requests
  • BeautifulSoup
  • python io

用 Python 做什么

这里打算通过分析 豆瓣电影TOP250网页来提取一些电影信息,通过干这件事来对 python 的 io 、http 请求方式做一些简单的了解。分析网页这里选择使用 Beautiful Soup 来做标签解析,请求库选用 requests。

阅读全文 »

前言

最近给自己挖了几个坑,准备填一下。现在来填一下第一个坑:图片模糊。关于图片模糊的方法有很多,比如:Open CV 的各种图片处理、Android 支持的高性能密集型任务执行框架 RenderScript、Java 或者 C/C++ 的算法实现图片模糊处理。本篇文章将包含以下内容:

  • RenderScript 简介与图片模糊的实现
  • Java / C++ 算法实现图片模糊处理
  • 一个简单的动态模糊实现
  • 总结

至于 Open CV 我以前的一些文有些简单的介绍,如果只是想模糊图片就引入整个的 Open CV 个人感觉还是有点“杀鸡用牛刀”的感觉。对了,关于算法实现什么的……我只是个代码收集者,并非我自己实现的。

阅读全文 »

写在前面

看了下上一篇文章的写作日期,转眼之间已经过去了大半个月了……一个国庆小长假下来也是放松了不少,不过学习也不能过于疏忽了。以前偷懒没有看适配6.0 和 7.0的东西,最近在下也是正式的抛弃了大三时买的ip6,入了一台小米mix2。mix2是基于Android 7.1的系统的,自己平时也喜欢用自己的手机调试应用,各种没有适配导致的崩溃自然也是免不了的。以前没看权限适配一是因为6.0以上的系统覆盖率不是很高,二也是因为那时候要看的东西很多,这东西不是很急迫,现在各个厂商的手机出厂系统都是6.0以上的了,也是时候看一下了。本文包括以下内容:

  • Android 6.0 动态权限申请
  • RxPermission
  • Android 7.0 File Uri 导致的崩溃以及如何适配

Android 6.0 动态权限申请

这里先推荐一波官方的文档:https://developer.android.com/training/permissions/requesting.html#perm-request,文档讲的还是比较详尽的,爱自己折腾的同学(比如我)看到这应该say goodbye了

阅读全文 »

写在前面

最近有需求要了解一下各个推送的协议,目前了解到实现推送的三个主要方式:MQTT、XMPP和Google Cloud Message(GCM)。第三种方式暂不研究,前两种都要看一看,本篇讨论一下MQTT协议吧。本文使用阿里云Ubuntu云服务器安装代理服务器,使用eclipse paho实现的MqttClient编写代码。文中的所使用的账户名和密码在本文发布后将会更改,请各位自行搭建环境。本文包括以下内容:

  • MQTT简介
  • MQTT优势
  • MQTT开发环境搭建
  • 使用PAHO实现MQTT推送

MQTT简介 & MQTT优势

MQTT全称是Message Queuing Telemetry Transport,MQTT是IBM开发的基于TCP/IP协议的轻量级通讯协议。MQTT是一个客户端服务端架构的发布-订阅(publish-subscribe)的消息传输协议。它的设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于:

阅读全文 »