- 博客(32)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Jetpack 寻英贴发起,寻找 50 名 Jetpack 爱好者
01—Jetpack 寻英贴02—背景1. Jetpack 的出现缘由和价值熟悉 Jetpack 的开发者都知道,Jetpack 是 Google 为了解决我们在 Android 日常开发中遇到的一些痛点而推出的一套组件。比如:为了解决因为屏幕旋转等配置变化引起 Activity 销毁重建而引发的数据丢失或崩溃问题,推出了 Lifecycle 组件。为了解决依赖注入 Dagger 框架使用技术门槛高的问题,推出了 Hilt。为了解决后台任务管理的问题,推出了 WorkMa.
2021-07-05 22:48:53
125
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 App性能优化方案
移动互联网的发展不知不觉已经十多年了,可以说,国内移动互联网的红利期已经过去了,现在是增量有限,存量厮杀,从争夺用户到争夺时长。不管是用户也好、企业也好,都对 App 的用户体验和性能提出了更高的要求。然而,一个 App 产品在快速迭代的过程中总会也必然会留下一些技术债务,当一个 App 产品逐渐走向成熟、用户体量逐渐增多,也必然会面临一个问题:性能优化。性能优化也成了移动开发工程师迈向高级工程师道路上一道避不开的坎,而这道坎,说实话门槛和学习成本还是挺高的。
2021-07-05 22:41:19
868
原创 SourceSet with name ‘main‘ not found.
Android Studio 运行 main 方法报错:SourceSet with name 'main' not found.
2022-05-07 20:56:40
870
原创 动态规划系列(四):LeetCode 300. Longest Increasing Subsequence(最长递增子序列)
动态规划系列(四):LeetCode 300. Longest Increasing Subsequence(最长递增子序列)
2022-05-07 01:00:53
220
原创 动态规划系列(三):LeetCode 55. Jump Game(跳跃游戏)(用贪心算法优化时间复杂度)
LeetCode 55. Jump Game(跳跃游戏)(贪心算法解法)
2022-05-06 18:43:23
595
原创 动态规划系列(二):LeetCode 62. Unique Paths(不同路径)
题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入: m = 3, n = 7输出: 28示例 2:输入: m = 3, n = 2输出: 3解释: 从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -&g
2022-05-06 16:13:25
173
原创 No such file or directory @ rb_sysopen
Error: No such file or directory @ rb_sysopen
2022-03-17 16:04:03
18089
4
原创 java.lang.IllegalStateException: Can‘t change activity type once set
问题现象描述用以下代码返回桌面:Intent homeIntent = new Intent(Intent.ACTION_MAIN);homeIntent.addCategory(Intent.CATEGORY_HOME);startActivity(homeIntent);现象: 在低版本系统能正常返回到桌面,在Android 9 版本会报错,报错信息如下:Fatal Exception: java.lang.IllegalStateException: Can’t change activi
2021-12-10 11:28:56
3003
原创 Button设置背景后不生效
现象: Button设置背景后不生效,仍为蓝紫色。解决方法: 修改默认的主题。找到项目中上面这两个 xml 文件,将 parent=“Theme.MaterialComponents.DayNight.DarkActionBar” 修改为 parent=“Theme.MaterialComponents.DayNight.NoActionBar.Bridge” 即可解决。...
2021-07-15 15:19:38
1338
2
原创 聊聊华为鸿蒙发布会
今晚看了一小部分「2021 鸿蒙操作系统及华为全场景新品发布会」,作为一个在 AIOT 领域摸爬滚打快 4 年、目前也在做这方面工作的从业者,觉得还是可以聊一聊分享一下自己的看法。其实 IOT 已经谈了好多年了,之前一直不温不火,甚至还有过一轮洗牌,有很多大大小小的企业杀进来然后又倒闭了,一直有两个主要的问题没有得到很好的解决:1.让物体能方便地移动上网。2.让物体能产生数据、并能进行数据传输、数据交换和交互。但是,我们目前连第一个问题都没有得到很好的解决,更不用说第二个问题了。之前比较火的车.
2021-07-05 22:44:42
153
原创 关于产品经理和程序员
一直在思考: 一个可以写代码的产品经理的优势是什么?它有必要么?2021.05.22 在跑步的过程中终于憋出了一个目前还算比较认可的答案。1. 说服力当达到一定高度,当前方是一片迷茫和未知,当你做的是探索性的产品的时候,当你的技术也不清楚你要的产品逻辑或者忽悠你说这个需求实现不了的时候,当你们也只能摸着石头往前探索的时候,你还可以通过技术性的语言描述、画流程图、画UML类图、写伪代码等技术性的语言把你的想法和产品逻辑呈现出来。如果实在不行,你还可以自己动手来写。这种产品能力+技术能力的结合产生的说.
2021-07-05 22:36:22
217
原创 hexo g -d 突然部署失败
报错信息:ChildProcess. hexo/node_modules/hexo-util/lib/spawn.js:37:17。Coding仓库地址更改了导致 hexo g -d 突然部署失败的原因分析思路及解决。前言前段时间忙于工作,有段时间没更新博客了,今天更新博客部署发现突然部署失败了。刚开始根据报错信息,在网上搜索了一圈,各种答案都有,发现都不太准确,有的还说是git的版本问题要升到最新的git版本,为此我还升级了mac的系统和git的版本。但发现并不能解决问题。最后,冷静下来分析报错
2020-12-20 14:11:23
1520
原创 mac zsh 配置 adb 环境变量 “zsh: command not found: adb”
前提已经成功安装了 Android Studio.打开 iTerm 终端依次输入下面命令:echo 'export ANDROID_HOME=/Users/$USER/Library/Android/sdk' >> ~/.zshrcecho 'export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools...
2020-03-08 23:56:31
3207
8
原创 面试题:计算 n!阶乘的结果的末尾有几个0
前言首先基于一个事实:我们不可能真的把 n! 的结果计算出来,再去数结果的末尾有几个0;n 很小还好,如果n很大,甚至趋近于无穷大,我们是不可能这样做的。原因主要有二:一般计算机的计算能力和存储能力也有限,是计算不出那么大的数的。即使计算机能算出来,这样做也很耗时,可能要算很久。连计算机都算不出来,那我们怎么办呢?别慌,虽然我们不能直接算出结果,但我们可以把问题一步步拆解。拆解思路...
2019-07-08 17:41:26
563
原创 面试题:寻找一个字符串中出现次数最多的字符以及出现的次数
要求编写代码实现:寻找一个字符串中出现次数最多的字符以及出现的次数。解法一:用删除法实现 (挺巧妙的一种)public class FindTheMostAppearChar { public static void main(String[] args) { deleteMethodToAchieve(); } /** * 用删除法实现 (挺巧妙的)...
2019-06-20 15:30:26
647
原创 Java8 和 Java9 的主要新特性
Java 8 的主要新特性1. Lambda 表达式Lambda 允许把函数作为一个方法的参数传递进方法中。作用:解决 Java 被诟病的匿名内部类的问题。2. 接口中可增加了默认方法作用:在接口中也可以有实现方法了。3. HashMap 底层数据结构的变化java 8 之前,HashMap 底层的数据结构是数组+链表实现的, Java 8 之后是数组+链表+红黑树实现的,当链表的...
2019-03-04 11:23:34
318
原创 Window 的添加过程
Window 的添加过程Window(或者说View) 是怎么添加到 Android 系统中然后展示给用户的?让我们来探索一下 Window 的添加过程。Window 添加过程的入口方法要探索添加的过程,必须先在源代码中找到添加 Window 的入口方法。Window 的添加需要通过 WindowManager 的 addView 方法实现,但 WindowManager 是个接口,它的真...
2019-03-03 19:28:59
222
原创 Window、WindowManager、View 之间的关系
如果问你三个简单的问题,你能答上来吗,你是怎么理解的呢。Window 和 WindowManager 是什么关系?Window 和 View 是什么关系?WindowManager 和 View 是什么关系?Window 和 WindowManager 是什么关系?Widow 是个抽象类,在 Android 中所有的视图都是通过 Window 来呈现的,包括 Activity、Dia...
2019-03-03 17:51:05
272
1
原创 一个有趣的问题: 如何用HashSet来存储重复的字符串?
前言今天,我们来探讨一个实际中不常用但却比较有意思的问题。它能帮助你理解 “HashSet中的键值是唯一的,不可重复的” 这句话的真正含义,也考验你对问题的思考深度。注:实际应用中,我们一般是用 ArrayList 集合来存储相同的字符串的,不会用 HashSet 来存。我们平时都看到或听说 HashSet 是不能用来存放重复的字符串的,是真的存放不了吗?如果面试问你这个问题,你能给出解...
2019-02-23 21:44:27
483
原创 JDK 是如何判断两个对象是否相同的?判断的流程是什么?
在Java程序运行时,会产生那么多的对象,那 Java 虚拟机是如何判断两个对象是否相同的呢?判断的流程是什么?参考解答:Java 虚拟机会先判断两个对象的hashCode是否相同,如果hashCode不同,则说明肯定是两个不同的对象了;如果hashCode相同再通过equals()方法进行进一步比较,如果equals方法返回true,则说明两个对象是相同的,如果equals方法返回false...
2019-02-22 00:15:21
268
原创 你有没有想过: 为什么Java中String是不可变的?
解答:因为在String 在通过new 的构造方式初始化的时候,在底层会用一个 private final 修饰的字符数组来存储字符串,该字符数组用了 final 来修饰所以是不可变的。public final class String implements Serializable, Comparable<String&a
2019-02-19 16:45:51
298
原创 Pre-built binaries not found for fsevents@1.1.3 and node@11.6.0
用 node v11.6.0 命令行安装 fsevent 插件时失败了,原来目前 fsevents 还没支持用 node v11+ 版本,解决方案就是降低 node 的版本再安装 fsevents。解决办法看这里:https://www.alankeene.com/2019/0102/fsevents-didnot-soppurt-node11.html...
2019-01-06 10:38:39
3454
原创 最安全的 hexo 多电脑同步博客解决方案--非新建分支
我们经常有这样一个需求场景:需要在多台电脑间完成 Hexo 博客的撰写和发布,这就涉及到如何多台电脑同步博客的问题。我最近也遇到了这个问题,网上看了很多方案。目前网上大部分 hexo 多电脑同步博客方案都是新建一个开源分支去存放博客源文件,但是你会发现,这样做的话很多第三插件配置的appid、app_key等密钥信息也暴露在了公开的仓库里,存在一定的数据安全隐患。那有没有什么办法不暴露这些信息...
2019-01-04 12:20:56
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人