- 博客(36)
- 资源 (2)
- 收藏
- 关注
原创 一键删除方舟编译器缓存文件js、js.map插件ArkCompilerSupport
插件一键删除DevEco Studio编译过程生成的js、js.map
2023-11-28 11:42:13
814
原创 【安卓单元测试】UITest通过typeText无法输入大写字母
最近在跑InstrumentedTest例子,发现官网以下代码无法通过typeText方法自动输入大写字母,即输入的是Expresso但输入框显示 espresso,最终导致Assert失败。 onView(withId(R.id.editTextUserInput)) .perform(typeText("Espresso"), closeSoftKeyboard()) onView(withId(R.id.changeTextBt)).perform(click())效果如下:经查询得知,
2022-03-17 09:17:34
3096
原创 【安卓基础】Android直接通过路径来操作其他应用的私有目录,可以吗?
在上篇文章[【安卓基础】一文搞懂Android历代版本文件访问权限变化](https://blog.youkuaiyun.com/m0_48179608/article/details/122838494)我们对同一个应用的的文件访问权限做了比较。那么不同应用之间文件访问又有什么限制呢?我们准备分二到三篇文件来阐述。这篇文章,主要来看下不同系统版本下,我们直接通过路径来访问其它应用的**内部存储、外部存储私有目录**,看看能不能访问以及不同系统版本的区别。
2022-03-02 17:12:31
8452
1
原创 【安卓基础】一文搞懂Android历代版本文件访问权限变化
十年安卓资深开发为何深夜惨叫?这一切的背后,是技术的薄弱?前言运行三年的App为何说崩就崩?数十种设备为何表现不一?新晋安卓开发者为何频频流泪?十年安卓资深开发为何深夜惨叫?这一切的背后,是技术的薄弱,还是谷歌的坑爹?一、Android文件系统私有目录App-specific storage: Store files that are meant for your app’s use only, either in dedicated directories within an in
2022-02-10 20:15:10
4709
4
原创 华为昇腾系列开发入门教程三:应用开发环境配置及Mind Studio的若干实践
编|章磊上篇文章《机器学习门槛都这么低了……点点鼠标就能训练模型和部署服务》发布后,似乎让不少徘徊在机器学习门槛的开发者们、付不起工资的中小企业家们以及广大寄希望于农村创业却又苦苦不着门口的热血青年们看到牛逼的曙光。【赵本山-相亲-GIF】不少做开发的xio生们课下问老厮能不能讲一些“干货”,就是能写代码的那种。说实话,像这种能直接接触代码的绝活儿,老厮一般都是放在私底下开的培训班上讲的,既然有人拿举报找人踹门来威胁我,老厮只能说“你-牛-逼”。【于谦-GIF】...
2021-08-16 13:35:18
2694
2
原创 机器学习门槛都这么低了……点点鼠标就能训练模型和部署服务
编|章磊看到这个标题估计有人要开喷了……你懂什么是机器学习吗?你知道啥是玻尔兹曼机吗?你懂宽深神经网络干啥的吗?切赫同调估计你都没没听过吧?我看你傅立叶变换都写不出来吧!来来来,把这个矩阵的逆给我写出来!打虫豸,好不好?我是虫豸——还不放么?鲁迅话说阿Q一脚踏进土谷祠的门槛……噢。。。差点忘了,言归正传,还是聊聊门槛。-------------------------------------------------尴转线------------------------------
2021-08-08 12:43:16
1361
原创 华为昇腾系列开发入门教程一:简单的几个名词
编|章磊几句废话前段时间有幸参加了华为昇腾CANN训练营第二期,说实话,也没怎么听,一是那几天确实忙,二是也确实听不懂。在安卓应用层开发多年,听到什么机器学习、卷积甚至python就头大,以前还和同学开玩笑说这辈子不会碰python,没想到这么快就打脸。至于为什么要搞这玩意儿,其实跟研究生课题有关,没办法,导师说搞,那就搞呗,印证了那句歌词怎么唱来着,什么“被逼的,被逼的”,哈哈,开个玩笑。好了,废话不多说。这两天又重新把视频看了一遍,目的很简单,就是昇腾的几个概论搞清楚,弄清楚自己究竟是在干
2021-07-25 13:50:32
2240
4
原创 《码农爽》Flutter:从底部选项卡BottomNavigationBar看国际化和代码抽离
码农 | 章磊这里是引用标题一标题二标题三标题四
2021-07-04 22:00:10
416
5
原创 《码农爽》: 一个为程序员快乐操碎了心的Flutter项目
做一个关于码农修身养性的项目,这个念头已经盘旋近两年了,只不过这两年一直在考研,所以停停歇歇。去年,抽空尝试了下用小程序去勾勒脑海中的想法,简单地做了一个轮廓(未发布),主要是解决“猝”的问题,所以取名“码农不猝”。后来看下了小程序相关政策,个人微信小程序账号可能无法发布健康相关的内容,并且对h5的支持也不太好,所以打算用原生实现一遍。小程序项目代码已上传至git,待原生开发完成后对功能进行适当裁剪后公开。因为本人安卓开发出身,为了兼顾后续iOS使用,便选用Flutter开发,算是新手一枚。至
2021-07-04 19:54:54
291
1
原创 阿里云移动热修复Sophix问题汇总
为了解决项目中安卓在线更新安装包过大以及线上BUG修复的及时性问题,决定在2.x开始集成热修复功能。分别尝试了微信的Tinker、美团的Robust以及阿里的第一代热修复框架Andfix,但考虑修复补丁包生效实时性、对目前的项目改动大小以及后期对补丁包的管理等问题,最终考虑了阿里云最新热修复框架Sophix,几个主流热修复框架对比如下(阿里云官网提供,Sophix是最后一列):根据官网的描述,Sophix几乎囊括了前面框架的所有优势,唯一的劣势就是收费,考虑到免费额度(50000个去重设备 + 20
2021-06-29 15:47:19
2461
9
原创 kotlin的高阶类型通俗理解
最近在看《Kotlin核心编程》这本书,关于高阶类型这一章节晦涩难懂,当然可能与自己的知识水平有关,在参阅其他资料后才大概明白作者的意思,遂作此文,把书本的案例重新编排下。1、问题假设我们给集合类型定义了Iterable2<T>的接口,目的为了遍历集合:interface Iterable2<T> { fun iterator(): Iterable2<T>}然后让不同的集合实现这个接口,比如列表这样定义:interface List2<T&g
2021-06-25 15:14:59
281
2
原创 AndroidStudio中查看字节码文件
码农 | 章磊Android Studio: 4.2.1class文件路径:项目根目录\app\build\intermediates\javacJD-GUI:http://java-decompiler.github.io/效果:
2021-06-03 13:52:35
518
原创 泛型在Java和Kotlin中的细微区别,你Get到了吗?
泛型作用:1、编译期类型检查2、运行时自动类型转换Java:1、不需要指定类型原因:向后兼容1.5以前版本。2、协变、不变、逆变3、多约束:不支持4、数组不支持泛型,支持协变5、获取泛型参数类型Kotlin:1、需要指定类型;类型推导,下面这样也可:Array(5) {“A”}2、协变、不变、逆变3、多约束:where4、数组支持泛型,不支持协变5、获取泛型参数类型6、通配符问题:1、如何兼容?加T与不加T生成的字节码完全一样。2、字节码一样,如何实现自动类型转
2021-06-02 14:07:14
549
2
原创 字符串模式匹配算法:KMP
在讲KMP之前,我们先看看粗暴的字符串匹配算法。比方说在原串abacbcabababbcbc中找模式串abababb。其实就是从原串的第一个元素开始一个个对应比较,但凡发现了不匹配,就回头来从原串中第二个元素开始重复前面比较过程。KMP这种算法看起来很简单,但是效率却不高,于是有人在想,能不能减少比较次数,于是这个被称为改进的模式匹配算法出来了。为了让大家不放弃,先不列出公式,用图形来概述下。如果已知下图中原串与模式串中前4位(绿色部分)相同,那么直接可以比较第5个元素。再看另一种场景,
2021-04-28 14:42:45
235
原创 软件设计师教程:第二章知识汇总及心得分享
知识汇总第二章个人感觉花时间最多的是编译过程,相关知识点参见:【软件设计师职称考试】第五天:脑补汇编步骤【软件设计师职称考试】第六天:编译文法,看着头大了三圈【软件设计师职称考试】第七天:有限自动机转换说明【软件设计师职称考试】第八天:编译过程,语法制导翻译关键点备注其它零碎知识点汇总:如果图片看不清楚可以去看这里下载xmind,不要积分哦。心得分享其实在第二章开始,我就就看了前几年的真题,真题还是比较简单的,无非是考一些概念性的东西,如哪个语言是标记语言,某段代码是否有语义错误等,稍难
2021-04-09 15:28:42
289
原创 软件设计:第一章的零碎知识点汇总
在前面三章中主要把重要的知识点单独拎出来学习了下。【软件设计师职称考试】第一天:强行解释一波CPU架构【软件设计师职称考试】第二天:原码、反码、补码、移码的公式推导【软件设计师职称考试】第三天:并联系统失效率公式推导但后面做具体试题的时候发现概念性的东西还挺多,为防复习后面忘了前面,所以整理了一个思维导图。不清楚的可以看原件:https://download.youkuaiyun.com/download/m0_48179608/16295410...
2021-04-01 13:18:44
159
2
原创 原码、反码、补码、移码的公式推导
一点废话关于这几个码早在n年前看过的了,后来也只记得补码,正好今天看到了这几个码的公式,就顺便记录下并尝试推导下。很多同学可能觉得直接把公式记住就行了,但我还是觉得复习不能光图快,在理解的基础上去记会更好,或者压根儿就不用记。原码规则 :0表示正号,1表示负号,其余n-1位表示数值的绝对值。按照这个定义,我们很容易写出(n = 4):(十进制)5 = (二进制)0101(十进制)-5 = (二进制)1101本来觉得原码挺简单,但是看了这么个公式,不免心中一居灵。其实静心想想也不难。
2021-03-29 14:15:19
5980
20
原创 强行解释一波CPU架构
前言最近突然想起了考证,一为落户,二为了提升自己,于是果断报名并在官网的推荐下迅速买了两本复习教材。除了纸质以外,还下载了电子版本,方便在工作闲暇的时候偷窥一把,毕竟离考试时间只有两个月,在保证工作的情况下看看技术书也无可厚非。初步算了下,平均每天可以抽出4个小时来复习,拿证的可能性还是有的,只是自己的基础不够牢固,所以困难重重。本着既可以日后复习又可以传播知识的缘故,遂将知识点记录于此,希望可以帮助同样在考证的朋友们。CPU结构昨天刚打开《软件设计教程第五版》时,内容还是蛮多的,第一页就把我恶
2021-03-26 22:50:33
187
原创 【一起学数据结构与算法分析】第六篇:第一章完整习题
关于第一章学习已经介绍完了。【一起学数据结构与算法分析】第一篇:取第K大数的两种方法比较【一起学数据结构与算法分析】第二篇:字谜游戏【一起学数据结构与算法分析】第三篇:递归的4条设计原则【一起学数据结构与算法分析】第四篇:泛型漫谈【一起学数据结构与算法分析】第五篇:处理include标签接下来我们就尝试来解一解书本上的习题。同学们,上阔~1.1 编写一个程序解决选择问题。令k = N / 2 。画出表格显示程序对于N种不同的值的运行时间。参见上面第一个链接,就不再赘述了,但是按题目要
2021-03-23 15:20:59
285
原创 【一起学数据结构与算法分析】第五篇:处理include标签
处理include标签其实第一章的习题部分,因为篇幅过大所有决定单独开一章节。题目要求如下:
2021-03-19 16:22:39
181
原创 【开源分享】安卓基于地图行政区的点聚合
前段时间公司项目需要基于三方地图开发一个根据行政区的点聚合功能,本以为官方sdk有现存的api可以拿来用,后发现官方demo是根据距离做的聚合,但也不是完全不能用,大体思路还是值得借鉴的。于是就弄了这么一个基于行政区的聚合功能,想想百度也没搜到类似的玩意儿,于是就开源下吧。关于使用方法,大家请移步:https://github.com/codersth/mapx下面就简单地说下设计思路。开局一张图,内容全靠编(编码的编哈)。上图中共分为两个部分,上面的虚线框内容为mapx lib,也就是我们的
2021-03-18 14:06:08
461
原创 【Android Jetpack实战追踪】ViewModel的初始化及dagger的使用
在上一章节【Android Jetpack实战追踪】从一个简单的登录页开始我们知道如何利用Jetpack搭一个简单的MVVM项目的框架,但很多细节并没有介绍,比如ViewModel的创建。那么今天我们就分别说下ViewModel的几种创建方式。ViewModelProvider(s)在lifecycle1.1.1(android.arch.lifecycle:extensions:1.1.1)之前,我们使用以下方式创建ViewModel。ViewModelProviders.of(this).ge
2021-03-16 14:30:32
990
1
原创 【一起学数据结构与算法分析】第四篇:泛型漫谈
以前刚在《数据结构与算法分析》中看到泛型这个章节总觉得莫名其妙,因为它更像是一种约束,而不是能称作为具体的类型,毕竟泛型在编译后不会有任何信息,最终还是回归到具体的数据结构。那么既然书本上写了这么章节,应该有它的用意,再说老朽本身就是java出身,特地绕过它总给人一种“自己学得不扎实”的样纸,那就索性装个B。【王大锤装B图】学过java的朋友都知道-万物皆对象,那既然什么东西都是对象,我们把操作入口的接收类型改成对象不就完事了吗?比如说人类吃东西,大体上是先嚼再吞,所以我们可以这样定义:class
2021-03-15 16:08:23
192
原创 【一起学数据结构与算法分析】第三篇:递归的4条设计原则
递归相信大家都很熟悉,简单来说,就是把一个很大的东西按照相同的模式回归到一个确定的点上。比如说爬楼梯,如果一个人一步能跨2个台阶,现在问:他第100步能跨到第几个台阶上?有人说200,很明显不对,因为老朽没说他最开始在哪个台阶上,如果最开始就在第200个台阶上,那答案就是200 + 200 = 400了。我们可以简单的列个等式:H(n) = H(n - 1) + 2, H(0) = C(n >= 1,C为常量),这样才能求解H(100) = 400。所以说,没指定初始值的递归都是耍流氓!由
2021-03-11 18:30:09
261
2
原创 【Android Jetpack实战追踪】从一个简单的登录页开始
在Android开发的设计模式上,大体上经历了MVC、MVP以及如今“甚嚣尘上”的MVVM,而Jetpack的横空出世无疑给MVVM添了一把柴火。 ------ 老朽那么对于一个初学者甚至刚听过这个名词的开发者,该如何入门呢?接下来就让老朽带领。。噢不。。是跟大家一起去深入Jetpack单词的拼写,J-E-T-P-A-C-K,来read after me: 借特派克。好了,废话不多说,进入正题。在进入正题前,有必要把我的开发环境列一下:win10 + Android Studio 4.2 Bet.
2021-03-11 13:41:51
632
2
原创 【一起学数据结构与算法分析】第二篇:字谜游戏
上一章我们学习了求第K大元素的两种方法比较。【一起学数据结构与算法分析】第一篇:取第K大数的两种方法比较今天我们紧接着学习引论中的第二个问题:字谜游戏首先我们分别定义字谜板(上图中的表格)和字典,字典暂且用一个简单的列表来模拟。 companion object { /** * List as English word dictionary. */ private val DICTIONARY = arrayOf("this
2021-03-09 11:23:10
420
原创 【一起学数据结构与算法分析】第一篇:取第K大数的两种方法比较
最近在学习Mark Allen Weiss这本经典著作(数据结构与算法分析-JAVA语言描述,第二版),想顺便做个笔记,一来供自己日后复习用,二来方便同样在看这本书的朋友们舒服地入门。第一章引论部分就抛出了一个问题:取N个数中第k个最大者。这个问题确实有很多种解法,在后面的章节中我们再去熟悉其他数据结构与算法来处理这个问题。但现在,既然是入门嘛,我们权且把自己当成技术小白,就按照书本中的提示来,即分别利用冒泡排序和k-排序(原谅我取了这么个名字)。先说说冒泡,但凡接触过编程的同学们对这个名词估计都
2021-03-08 14:56:44
371
原创 Android事件的前世今生:可能是全宇宙讲得最通俗易懂的一篇
刚编的故事上个礼拜在小区门口打车去做头发的时候,一个去年刚转行跑外卖的同事突然把电动车骑到我跟前,其实早在去年离职前他就有跑外卖的打算,没想到这么快他的“理想”就实现了。想到老夫35岁也有可能面临跑外卖、摆地摊的窘境,遂决定趁这个难得的机会好好讨教讨教外卖行业的秘诀,毕竟隔行如行山嘛。一直以来,我都错误地以为跑外卖只要勤劳点多跑点单子,收入肯定会递增,但他的一番话让我醍醐灌顶。“你以为单子都我们自己跑出来的啊,那我挣的钱还不如以前在公司撸代码呢!”听完这句话,我开始正眼瞧他了。“有些单子比较近我就
2020-06-16 20:52:11
519
1
原创 老罗的《Android系统源代码情景分析》翻了10遍还看不懂?因为你用错了
最近老朽又把罗升阳老师的《Android系统源代码情景分析》拿出来啃了一番。为什么要加个“又”呢?因为从老罗的第一版开始到迄今为止尚未更新的第三版为止,每年有学习冲动的时候便默默地从电子书里把这本书翻出来。那既然老朽已经读了这么多遍,理论上应该对书中的内容了然于胸了啊,怎么能说“啃”呢?因为啊,每次看完某个章节后再回顾知识点的时候,总感觉大脑被各种源码级调用搞得一团乱麻,等隔个半年再去看的时候,咦〜,这个点好像压根儿没看过嘛!所以老罗的这本书似乎有一个神奇的功效,那就是让很多人读了很多遍都觉得它是本新书
2020-05-31 23:05:04
4237
3
原创 作为30岁的大龄平庸安卓开发者,我想在五年内成为技术专家
前段时间,我在知乎上发起了一个提问—30岁的大龄程序员应该钻研技术还是及早转行?在问题的描述中,我提到自己接过私活,炒过股票,也玩过一阵子自媒体,但是技术这块,空有八年经验,如今在一家可以混吃等死的近乎996的上市公司。令我出乎意料的是,在问题的下方,有人劝我考研提升学历,有人劝我留学镀金,更多的人劝我继续在技术这块稳扎稳打,就是没人劝我转行。或许,他们是出于善意地提醒,毕竟在如今经济不景气的大背景下,放弃八年经验转而从头开始新的行业是一件极为冒险的事;或许,我的能力也不足以让我在另一个陌生行业凤凰涅
2020-05-28 06:26:10
626
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人