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

Android Snackbar 使用

Snackbar 提供操作的轻量级反馈。显示在手机底部或者大屏幕的左下,Snackbar显示在所有界面的最上层,并且只显示一次。 Snackbar 可以包含一个操作,使用 setAction(CharSequence, android.view.View.onClickListener) 设置。 Snackbar 可以通过 setCallback(Callback) 来设置显示和消失的回调 Snackbar.Callback 显示时间长短的常量 int LENGTH_INDEFINITE 没有操作不消失 int LENG Read more ...

2016-09-26 Android , AndroidDev

每天学习一个命令:tar 压缩和解压文件

tar 本质上只是一个打包命令,可以将多个文件或者文件夹打包到一个 tar 文件中,结合其他的压缩程序再将打包后的档案文件压缩。所以看到 .tar.gz, .tar.bz2, .tar.xz 等等文件其实是 tar 文件之后进行 Gzip, Bzip2, XZ 压缩之后的文件。 命令格式 tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append | t --list | --test-label | u --upd Read more ...

2016-09-25 tar , linux , archive , extract , command

Android Notification

Android Support v4 包中的 NotificationCompat.Builder ,在 Android 3.0 API Level 11 中才有 Notification.Builder。 创建通知 您可以在 NotificationCompat.Builder 对象中为通知指定 UI 信息和操作。要创建通知,请调用 NotificationCompat.Builder.build(),它将返回包含您的具体规范的 Notification 对象。要发出通知,请通过调用 NotificationManager.notify() 将 No Read more ...

2016-09-25 Android , AndroidDev

Android monkey test

Android UI monkey 测试 伪随机用户事件,发送到模拟器或者设备,用来对应用程序进行压力测试。 功能: 设定事件数 操作限定到某一个特定 package 事件类型和频率 调试选项 报错: 如果应用 crash 或者遇到 unhandled exception , monkey 会停止并上报错误 如果应用产生 not responding error , monkey 也会停止并上报 基本使用 基本语法: adb shell monkey [options] <event-count> Read more ...

2016-09-22 Andorid , AndroidDev , monkey

每天学习一个命令:dpkg-reconfigure 命令重新配置软件包

dpkg-reconfigure 命令是 Debian 系 Linux 中用来重新配置软件包的命令,运行该命令可以重新配置软件包第一次安装后的配置问题。 使用方式 sudo dpkg-reconfigure [package name] 举例 常用的配置,比如配置语言 sudo dpkg-reconfigure locales 配置 display manager sudo dpkg-reconfigure lightdm sudo dpkg-reconfigure mdm 配置时区 sudo dpkg-reconfigure t Read more ...


Gradle 重复导入错误

记录一下纠结了两天的问题。 问题 项目中遇到如下错误: Error:Execution failed for task ':mobile:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry:android/support/annotation/AnyRes.class 这个问题是因为项目中引入了 support-annotations 包,但是导入的其他 jar 包中包含了这个 package,重复导致了 duplicate en Read more ...

2016-09-18 android , androiddev , gradle , google

adb shell dumpsys 使用

adb 相关的命令在 这篇 文章中已经提及。这里主要展开 adb shell dumpsys 这个子命令。 今天在查当前运行的 Activity 时遇见这个命令。 当前 service adb shell dumpsys,默认打印出当前系统所有 service 信息 获取屏幕信息 adb shell dumpsys display |grep DisplayDevice 获取电源管理信息 adb shell dumpsys power 电池信息 adb shell dumpsys battery Current Battery Se Read more ...

2016-09-09 adb , android , android-dev , shell

常用 adb command 命令

一些常用的 adb 命令,包括 Android 录屏,及从电脑复制文件,从 Android 设备拉取文件等等。 adb 的全称是 Android Debug Bridge, 这个命令可以用来发送一系列指令给 Android 设备,包括但不限于基本的 Linux 指令。只要手机或者任何 Android 设备开启了 Debug 模式并且取得信任,adb 命令几乎可以用来做任何事情。因此网络上也存在使用 adb 来入侵同一局域网下的 Android 盒子的例子。 adb 使用的默认端口是 5037. Ubuntu 系下安装 sudo apt-get i Read more ...

2016-09-08 android-dev , android , adb , dev , device

Android Animation Interpolator

动画插值器,用来描述动画的变化率,这里讨论的 Interpolator 指的是 android.animation 包下的 TimeInterpolator。 以下所有的插值器都继承自 Interpolator , 而 Interpolator 接口直接继承自 TimeInterpolator , 自身并没有添加任何方法。 TimeInterpolator 中有 abstract float getInterpolation(float input) 方法,参数 input:input 参数是一个 float 类型,它取值范围是 0 到 1,表示当前 Read more ...

2016-09-06 Android , AndroidDev

最近文章

  • screen.garden:让 Obsidian 拥有 Google Docs 般的实时协作体验 之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。
  • Clawdbot 深度调研:打造完全属于自己的全平台 AI 助手 最近在折腾各种 AI 工具的时候,发现了一个有意思的现象:市面上大部分 AI 助手要么被牢牢绑定在某个特定平台上(比如只能在 Discord 里用的机器人),要么就是完全依赖某家公司的 SaaS 服务,你的对话数据都在别人的服务器上。作为一个对隐私比较在意的人,我一直在想,能不能有一个完全由自己掌控、可以在所有常用聊天软件里使用的 AI 助手呢?直到我在 GitHub 上发现了 [[Clawdbot]] 这个项目,才发现原来真的有人在认真解决这个问题。
  • 推荐我使用的 Agent Skills 随着 AI 编程助手的快速发展,[[Claude Code]]、[[Codex]]、[[Gemini CLI]] 等工具已经成为开发者日常工作中不可或缺的伙伴。然而,这些工具的默认功能往往只是冰山一角。通过安装和配置 Agent Skills,我们可以大幅扩展这些 AI 助手的能力,让它们更加智能、更加专业。
  • Antigravity Agent Skills 功能介绍与实战指南 2026 年 1 月 14 日,[[Google]] 为其 AI 驱动的开发工具 [[Antigravity]] 推出了 Agent Skills 功能。这个开放标准的技能系统让开发者可以将专业知识打包成可复用的技能包,极大地扩展了 AI 智能体的能力边界。
  • Gemini CLI Agent Skills 功能介绍与上手指南 [[Gemini CLI]] 最近推出了一个非常强大的新功能,名为 [[Agent Skills]]。这个功能极大地扩展了命令行 AI 助手的边界,允许用户根据自己的需求定制专业的技能包。