Android 过渡动画框架

为了帮助视图层次内部和视图之间的过渡更加容易实现动画效果,Android 提供了 Transition 框架。这一套框架能够在视图之间提供一种或者多种动画过渡效果。过渡动画要解决的另一个主要问题就是对同一场景中的多个 View 做动画,弥补了之前Android 在动画方面的缺失。 这一套框架提供如下功能: Group-level 动画 在同一视图层次中一种或者多种动画效果 Transition-based 动画 在初始场景和终止场景之间动画 Built-in 动画 内置普通效果动画, Read more ...


Podcast 托管

Podcast 近两年又突然火起来,一度认为 Podcast 是最近才流行起来的媒体,后来才发现这种媒介早在上世纪 80 年代就诞生 。近两年被再一次提起可能 iOS 系统内置播客系统是个契机,一时间让 Podcast 进入大众的视听,而国内近些年也陆陆续续出现了很多播客平台,喜马拉雅,荔枝等等, 播客这种形式在播客,视频播客新奇之后似乎很难找到自己的定位,但是在日常生活中还是有很多情况适用播客,在开车等双手双眼需要时刻准备着的时候,播客系统可以可以代替收音机,而在长途跋涉需要闭目养神时,播客也可以成为音乐的代替。 但是经过这么多年的演进, Podca Read more ...


Head First Design Patterns

Some of the Head First learning principles: make it visual. use a conversational and personalized style. think more deeply. keep attention. touch emotions. To bend your brain into submission Slow down, the more you understand, the less you have to memorize. Do Read more ...


xiaomi router samba password

ssh to xiaomi router smbpasswd -a root then enter your password two times. vi /etc/config/samba Edit option 'guest_ok' no option 'force_user' 'root' And vi /var/etc/smb.conf Edit guest ok = yes valid users = root Then restart samba service: /etc/init.d/s Read more ...

2016-10-11 xiaomi , router , samba , linux

Android 提醒

Android 对话框 实现对话框通常有三种方式: 使用 Dialog 类,或者其派生类 每个类被用来提供特定功能,比如日期选择,单选等等 对话框主题的 Activity 可以将对话框主题应用到 Activity 上,使 Activity 外观类似于对话框 Toast 特殊的,短暂的,非模态的消息对话,通常在 Broadcast Receiver 和 Service 中使用,来提示用户响应事件 以下重点考虑 Dialog 类的使用,其派生子类 DatePickerDialog,TimePickerDialog 以后扩展开 Read more ...

2016-10-11 Android , AndroidDev

Android 使用自定义 keystore 调试

可以在 build.gradle 文件中指定debug 下的 keystore 文件路径,一般放到项目跟目录下,并使用如下方式指定。 更多语法可以参考 Signing Configurations 部分 http://tools.android.com/tech-docs/new-build-system/user-guide 指定 debug variant 下 keystore 路径: android { signingConfigs { debug { storeFile file('your.k Read more ...

2016-10-09 Android , AndroidDev

全平台录制 GIF:LICEcap

以前写过一篇文章 讲的是如何在 Linux 下使用 byzanz 来录制 GIF,并且能够达到很好的效果,并且文件大小非常合适网络分享。现在就介绍下在其他两大平台 Win/Mac 下录制 GIF 的工具。 LICEcap 录屏 GIF 工具名字叫做: LICEcap 。这也是一款我在使用很长时间之后感觉非常好用的工具。他的官网地址: http://www.cockos.com/licecap/ 他有如下优点: 开源,简单,小巧 支持直接录屏转 GIF,或者自由 .LCF 格式,使用 REAPER 可以转制成 .gif 或者其他视频格式 Read more ...

2016-10-01 gif , 经验总结 , record , tools

通过 IFTTT 自动下载 Instagram 图片到 Google Drive

在 Instagram 关闭 API 之前可以通过 IFTTT 获取别人的更新 Photos, 但是 Instagram 收紧了 API 政策。既拿不到别人更新的信息流,同样也自己Like 别人照片的信息也拿不到了,原来 IFTTT 有两个 Recipes: 一个为自动下载个人 Liked 别人的 Photo 到 Dropbox 另一个为自动下载其他 ID 的更新 Photo 然而这两个 Recipes 都被 IFTTT 删去了,我甚至在 StackOverflow 上问过这件事情,只是几个月过去了,也没有任何实质性的方案。 直到这些天 Read more ...


Android 常见错误

INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法 出现时机 INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法,在 Android 模拟器上安装 apk 的时候出现 解决办法 是由于使用了 native libraries ,该 native libraries 不支持当前的cpu的体系结构。 INSTALL_FAILED_NO_MATCHING_ABIS is when you are trying to install an app that has native libraries and i Read more ...

2016-09-29 Android , AndroidDev

android 6 runtime permission

在 target API 23 之前,应用申请权限为一次性给予,开发者需要在 Manifest 中使用 users-permission 来申请权限,而用户则是在安装应用时一次性赋予应用所有申请的权限。 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.RECEIVE Read more ...

2016-09-27 Android , AndroidDev

最近文章

  • Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令 用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。
  • 本地快速切换 Claude Code 和 Codex CLI 账号的几种方案 同时维护个人项目和工作项目的时候,最让我头疼的不是代码本身,而是工具的账号管理。[[Claude Code]] 和 [[Codex]] 这类 AI 编程工具,我在公司有一套账号,个人订阅又是另一套。每次在项目之间切换,都要 claude auth logout 再 claude auth login,不仅耗时,还经常忘了当前用的是哪个账号,写了半天才发现额度消耗到错误的账号上去了。
  • socat:比 netcat 更强大的网络瑞士军刀
  • codex-lb:用负载均衡的思路管理多个 ChatGPT 账号 用 [[Codex]] CLI 做开发的人大概都遇到过这个场景:手头有几个 ChatGPT 账号,分散在不同的订阅计划里,但工具只认一个账号,额度用完了只能手动切换,每次还要重新登录。更头疼的是,当多人共享一个环境,或者想用同一套配置同时跑 Codex CLI 和 OpenCode 时,账号管理很快就变成了一团乱麻。
  • cc-switch:在多个 AI 编码工具之间优雅切换 最近这一年,AI 编码工具的竞争进入了白热化阶段。[[Claude Code]]、[[Gemini CLI]]、[[OpenAI Codex]],每家都在拼命迭代,功能差距越来越小,价格战也越打越猛。于是我开始同时订阅好几个服务,针对不同的任务选用不同的工具——写复杂逻辑用 Claude,快速查文档用 Gemini,处理 Python 脚本用 Codex。