phantomVK

Cease to struggle and you cease to live.

Fix: Only fullscreen activities can request orientation

根据运行系统版本号重写 Activity.setRequestedOrientation(Int)。当版本号为 Android O 时不调用父类方法,避免父类检测条件并抛出异常。 override fun setRequestedOrientation(requestedOrientation: Int) { if (Build.VERSION.SDK_INT == Build.V...

创建Flutter工程卡死

首次完成配置 Flutter 环境后,通过 flutter doctor 检查 Android Studio 插件已正常安装。 > flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac...

Android滑动返回实现

背景 滑动退出最早出现在 iOS7,是系统提供的标准功能,一直沿用到现在。 对 Android 来说,更多是因为iOS出现该功能,产品经理为统一移动终端的 user experience 而跟进。相比 iOS在系统层完美的实现方式,Android无论用哪种方式,都需要在内存、处理器性能、流畅性之一作出牺牲。 方案 现时讨论最多的两种方案是: 截屏图片模仿透明背景; Wi...

Ubuntu18.04,CUDA10.0,TensorFlow-GPU安装

开始以下步骤之前,强烈建议先参考 Ubuntu18.04安装NVIDIA显卡驱动 正确安装显卡驱动。如果显卡驱动已经安装则下面安装 CUDA10 流程可以省略,因为 CUDA10 会自动装好。 Python环境 Ubuntu18.04 同时包含 Python2 和 Python3,但 Python3 相关环境例如 pip 不一定有,所以需要安装 sudo apt-get install...

Application创建过程

一、简介 1.1 简介 Application 在Android应用进程占据重要地位,每个进程只有一个实例,继承自 Context 父类可直接当 Context 使用,肩负起众多功能。 1.2 启动优化 应用第三方依赖库的 初始化、定义全局配置、缓存建立 操作都在 onCreate() 执行。当依赖库日渐增多而 Application 初始化又在主线程进行,初始化任务越多,应用冷...

macOS安装Java8

开发库如 Gradle 和 Java11 之间存在兼容问题需用旧版本 Java,但安装旧版本无法用以下命令获取 brew install java8 Homebrew 会找不到该库而报错 Error: No available formula with the name "java8" ==> Searching for a previously deleted formula...

Retrofit使用MultipartBody

指定 RequestBody 上传的文件路径 val requestBody = RequestBody.create(MediaType.parse("file/*"), File(filepath)) 构建 MultipartBody 消息体 val body = MultipartBody.Builder() .setType(MultipartBody.FOR...

Ubuntu18.04安装NVIDIA显卡驱动

开始安装 添加PPA,过程中回车确认询问的信息 sudo add-apt-repository ppa:graphics-drivers/ppa 依次执行以下命令更新下载源 sudo apt update 检查可用驱动 ubuntu-drivers devices 根据下列结果,可见 nvidia-driver-430 为推荐驱动安装版本 == /sys/devices...

Only fullscreen opaque activities can request orientation

问题 最近同事把 targetSdkVersion 从 26 升到 28 后,原本以为没有兼容性问题,没真机检查就发测试版。结果内部试用 Android 8.0 和 Android 8.1 手机打开 Activity 崩溃。 上报错误具体如下: java.lang.RuntimeException:Unable to start activity ComponentInfo{com.x...

Android源码系列(24) -- ViewStub

虽然 ViewStub 父类是 View,但其本质是 不可见、无尺寸、懒加载 的布局填充工具,自身没有尺寸和绘图逻辑,不能展示在界面上。 public final class ViewStub extends View 当 ViewStub 被设置为可见,或调用 inflate() 时进行布局资源填充。填充过程 ViewStub 从所在父布局中移除,并把懒加载填充的布局添加到相应位置,...

Default interface methods are only supported starting with Android N

依赖旧版本: implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' implementation 'androidx.core:core-ktx:1.1.0-alpha05' 更新为以下版本: implementation 'androidx.appcompat:appcompat:1.1.0-beta01' impl...

即时通讯头像策略

一、前言 当今几乎所有流行移动应用,无论是新闻资讯、大众娱乐,还是即时通讯,充分利用人类易对视觉冲击做出反应的特点,通过大量的图片和视频组合内容,提高用户对应用的依赖程度。本次研究重点圈定在一个特定领域内,即主题所说的即时通讯头像策略。 用户使用即时通讯应用时,快速识别正在聊天好友身份的方式,首先是映入眼眸的好友头像,而不是人物名称,所以头像具有快速辨别用户身份的作用。 同时,该头像可...

macOS使用polipo

macOS 先通过 Homebrew 安装 Polipo brew install polipo 在用户根目录创建或修改配置文件 ~/.polipo。有两个参数需要修改: proxyPort:polipo 提供服务的端口,默认为8123; socksParentProxy:本地 Socks5 地址,具体看 ShadowSocks 配置,一般为 “127.0.0.1:1080...

Java源码系列(23) -- ArrayDeque

一、类签名 ArrayDeque 是实现 Deque 接口且容量可变的双端队列数组。数组实现的双端队列没有容量限制,需要更多空间时再进行扩容。此类线程不安全,如果没有外部同步约束,就不支持多线程并发。值得注意的是,本双端队列不接受空对象,作为栈使用时比 Stack 快,作为队列使用时比 LinkedList 快。 大多数 ArrayDeque 方法执行消耗常量时间,除了 remove(O...

安装Jekyll本地环境

Jekyll 依赖 Ruby 语言,需要先安装 $ sudo apt install ruby 类似 pip 于 Python,RubyGems 是 Ruby 的包管理器,其终端命令为 gem。安装 Ruby 之后用 gem 直接安装 Jekyll 可能会报以下错误: $ sudo gem install jekyll Fetching: public_suffix-3.1.1.g...