Cafeting

一个人的行走范围,就是他的世界。

macOS High Sierra 最近爆出一个严重的安全漏洞,允许任何人在没有密码的情况下以完全管理功能的 root 用户登录到 Mac。据说已经有安全补丁,但是很多人未收到推送。

受影响的系统版本:

  • macOS High Sierra 10.13
  • macOS High Sierra 10.13.1
  • macOS High Sierra 10.13.2 beta

同时,这些系统下还需符合以下条件之一时才会受到安全漏洞的影响:

  • 以前没有启用 root 账户
  • 没有在 Mac 上更改过 root 用户账户密码

这里有个比较简单的解决方法,可以防止这个安全 Bug 成为一个大问题。简单来说就是:在受影响的 Mac 上设置 root 用户的密码。

阅读全文 »

关键词:AndroidMake user modeuseruserdebugeng


判定手机系统的构建模式、用户模式

编译 Rom 时,需要指定目标构建模式,构建模式有三种:用户模式 user、用户调试模式 userdebug 和工程模式 eng

阅读全文 »

关键词:GridView ListView EmptyView SwipeRefreshLayout

在使用 GridView、ListView 时经常需要处理无数据的情况,给用户一些必要的提示。而 GridView 和 ListView 可以使用 setEmptyView() 方法来设置无数据时展示的 View 。

本文讲一下 EmptyView 的基本用法以及如何配合 SwipeRefreshLayout 使用。

阅读全文 »

近期有网友根据 Android 必知必会 - DialogFragment 使用总结 做一些业务,但是目标却是用 DialogFragment 实现类似 PopupWindow 效果:

  • 只拦截自身所占空间部分的事件,其余空间的点击事件不处理
  • 可以根据某个 View 定位自身位置

虽然在功能上 PopupWindow 更符合需要,但是使用 DialogFragment 代码更简洁、更方便封装功能模块。

阅读全文 »

最近使用 ThinkPHP3.2.3 进行 API 开发,发现 ThinkPHP3.x 查询数据库返回所有字段值类型都是 String。以前开发 web 的时候没怎么注意这个,现在发现用到 API 开发很难办,数据类型不对,不能每个字段都让客户端自己强制转换一下。

查资料后发现 ThinkPHP3.x 的 Model.class.php,提供了 _parseType 方法,在查询完以后进行类型转换,但需要我们手工调一下。

阅读全文 »

今天收到邮件提示 exploded-aar 目录问题在 gradle plugin 2.5 版本修复好了。

Marked as Fixed

in 2.3/2.4 you can look in the build cache entries and look in the input file that indicate the source of the cache entry (maven coordinate).
in 2.5+ we switched to Gradle’s own cache so you’ll have to look in the gradle folder.
If all you need is manually get the aar content you could also manually download the aar and unzip it yourself.

查看 Issue 详情(需要梯子):Issue 页

— 更新于 2017-05-11


升级到 Android Studio 2.3 后,Gradle Plugin 也升级到 2.3.0,对应推荐使用的 Gradle 版本是 3.3。

这时候会发现项目目录下 {module name}/build/intermediates/exploded-aar/ 目录没了,经过一番查找,发现这并不是一个 Bug,是官方刻意为之,它会在 {user name}/.android/build-cache 下生成一部分缓存文件,来代替 exploded-aar ,如果需要生成它,可以配置项目目录下的 gradle.properties ,添加一行内容:

1
android.enableBuildCache=false
阅读全文 »

错误提示如下:

1
2
Gradle sync failed: Cause: error in opening zip file
Consult IDE log for more details (Help | Show Log)

今天升级 2.2 到 2.3 后打开一个项目提示升级 gradle,就同意了,结果报了上面的错误。

大概原因应该是下载的最新的 gradle 包有问题,新升级后配置的代理失效了。

操作如下:

  1. 删除项目目录下的 .gradle/ 整个项目
  2. 查看 gradle/wrapper/gradle-warpper.propertiesdistributionUrl 的 gradle 版本,比如是 3.3 ,然后去 ~/.gradle/warpper/dists/ 下删除对应版本的 gradle ,这里是 gradle-3.3-all
  3. 然后重启 Android Studio 让它重新同步即可

在 Mac 下使用 Android Studio 时常会遇到 Android Monitor 突然不打印日志的情况,目前知道的有三个方法:

  1. 重启 Android Studio

    这个不需要多说,点击 Android Studio 的 File => Invalidate caches / Restart ,选择 Just Restart

  2. 重启 adb

    命令行下输入:adb kill-server 关闭 adb,adb start-server 开启 adb 即可。

  3. 切换 adb 的 root/unroot 模式

    这个实际上还是重启了 adb 。 adb root 使 adb 默认进入 root 模式,adb unroot 使 adb 进入非 root 模式,切换模式会导致 adb 重启。

0%