Android 10 分区存储 以前,Android 开发者习惯在根目录建一个自己应用的文件夹,用于存放应用的数据。这样会导致用户卸载后,应用数据不会随之删除。导致手机文件特别混乱,长期占用空间,而且容易泄露用户隐私。其实 Android 早就提供了 getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir() 等 API 供开发者使用,但是开发者为了方便,没有去用。
Android RadioGroup clearCheck() 的一个坑 通过debug,发现clearCheck之后,如果有RadioButton被选中,回调onCheckedChanged会被调用两次。今天在通过RadioGroup的clearCheck方法将所有的RadioButton设置为非选中的时候,发现怎么也不行。两次的checkedId分别是-1和选中的那个RadioButton的id。可以在clearCheck之前先把回调置空,然后clearCheck之后再设回来。如何避免选中的id被回调?...
Android LayoutInflater 的一个坑 这样的话,如果要对添加的View做操作,可以传入false,最后再通过addView添加到容器中去。通过调查发现,最后一个参数传true和false,返回的View是有差别的。然后对view设置LayoutParams的时候,怎么也不起效果。最后一个参数传了true,就是想偷懒,省去addView的操作。...
Android 自定义 View - 四个构造函数 View 的构造函数有四个:1. `public View(Context context)`2. `public View(Context context, @Nullable AttributeSet attrs)`3. `public View(Context context, @Nullable AttributeSet attrs, int defStyleAttr)`4. `public View(Context context, @Nullable AttributeSet attrs
Andorid 自定义 View - 自定义属性基础 当我们自定义 View 的时候,至少要定义两个构造函数。第二个构造函数中的参数 attrs 可以获取在 xml 中添加的属性的值。系统已经给我们定义了以下属性,可以在 sdk/platforms/android-xx/data/res/values/attrs.xml 中找到。我们也可以自定义属性。declare-styleable 定义属性分组,名称一般和自定义 View 的名称一样。在 R 文件中就会生成 styleable 类。里面包含所有属性。attr 定义或者声明属性。注意,这边有两种方式
macOS 替换 Homebrew 源 Homebrew 是一款自由及开放源代码的软件包管理系统,用以简化 macOS 和 linux 系统上的软件安装过程。它拥有安装、卸载、更新、查看、搜索等很多实用的功能,通过简单的一条指令,就可以实现包管理,十分方便快捷。Homebrew 主要有四个部分组成: brew、homebrew-core 、homebrew-bottles、homebrew-cask。......
Android 动态获取 Resource ID Android 开发中,当需要获取资源文件 ID 的时候,会按照下面的方式获取:但是如果有一组相似的图片,名称也很相似。比如电量图标,ic_battery_0,ic_battery_1,ic_battery_2,…,ic_battery_100。那么如果要根据电量值显示对应的图标的话,不管是 if else 还是 switch case,都需要写很多代码。如果用动态 Resource ID 的话,就会方便多了,下面介绍下做法...
Android Canvas - StaticLayout 绘制多行文字 Canvas.drawText 只能绘制一行文字,文字多了会超出屏幕之外。要想绘制多行文字,可以使用 StaticLayout。
Android Canvas - saveLayer() & restoreToCount() 说起 saveLayer() & restoreToCount(),不得不先说 save() & restore()。saveLayer 和 save 相似,但是又有区别。
Android Canvas - save() & restore() 这有什么用呢?当调用 save 保存了画布的状态之后,就可以对画布为所欲为了(调用 Canvas 的平移、放缩、旋转、错切、裁剪等操作),反正可以调用 restore 恢复状态不是吗?save 和 restore 一般配套使用。......
conda 常用命令 Anaconda 指的是一个开源的 Python 发行版本,其包含了 Python、conda 等 180 多个科学包及其依赖项。这个定义可能有点抽象,可以这样理解,Anaconda 提供了一个 Python 环境,并且已经替你下载好了很多常用的包(包括 jupyter notebook),省去了自行下载的麻烦。...
Android NDK(五)- ndk-stack 还原堆栈信息 native 的崩溃相比于 java 很难看懂,对于排查问题很不利。不过我们可以通过 NDK 中的工具 ndk-stack 来还原堆栈信息。