- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 「Android实用脚本」根据MD5值统计项目中冗余资源
包体积优化过程,通过md5值比较去除冗余资源,不仅准确,并且大大减少人工核对冗余资源工作量和时间成本
2022-08-18 21:39:04 716 1
原创 「Android实用脚本」统计项目中所有资源数量, 图片等
统计包体积大小,优化包体积时,对比优化前后图片资源成果可以使用该脚本统计资源数量,大大减少统计资源的时间
2022-08-18 21:34:25 930
原创 「Android实用脚本」 统计项目中相同名称的重复资源大小
如何统计Android项目中相同名称的重复资源的大小呢,还在手动计算吗,当项目足够大,身为程序员的我们,还在手动统计是不是有点掉价啦,一起来探索一个自动化的方案吧
2022-04-13 21:13:47 2264
原创 android中到底支持SVG哪些标签
背景介绍我们都知道android中支持svg图片,但是到底支持到什么程度,哪些支持哪些不支持,这个问题最近让我反思了起来根据经验来讲,android中是支持path,group等标签的,但是这两天在通过android studio转换svg成xml的时候遇到了一系列的问题,从png转换的svg图片在转换Vector Asset的时候无法转化,报错,不支持image等标签.之前确实没有遇到过这个问题,于是在论坛上查了很多博客,但是没有一篇文章能说出来到底不支持哪些标签,支持哪些标签的(也有可能是我没找到
2022-03-10 21:33:58 4238
原创 【Android】知识体系
前几天跟一位同事,聊起来平时学习技巧的问题,他谈到一个点,我觉得非常有道理,要有自己的知识体系, 从自己的知识体系出发,不断的由浅入深去扩充丰富自己的体系结构。诚然,一语惊醒了我,回想一下自己确实在这方便做的比较差,平时学习也是各种找资料,想看什么就看什么,这样就导致学习的东西不具有连贯性,很杂,容易忘记,于是梳理了一下自己当前掌握的以及需要拓展的知识体系,后续会根据这个体系去回顾,去拓展自己的专业知识。当然,当前列出的知识点知识一部分,后期想到之后会持续补充。目录Android基础知识五大组件控件的
2021-05-29 11:54:44 818 2
原创 【Android】日常踩坑-动画篇
本博客主要用于记录开发过程中常见或者自己遇到得问题,方便后续回顾,重新回味。为了方便查询,我尽量顺序按照字母从小到大排序动画相关概念篇AnimationSet和AnimatorSet有什么区别功能篇如何实现上下抖动动画效果概念篇AnimationSet和AnimatorSet有什么区别答:参考这个大佬文档功能篇如何实现上下抖动动画效果效果图包含了多种方案,以及大概思路,详情查看具体实现...
2021-05-12 16:11:01 147
原创 【Android】动画篇 - 实现上下抖动动画效果
如何实现上下抖动动画效果方案1我们可以直接通过一个属性动画直接实现,但是实现效果不好// 要实现抖动的viewvar view = findViewById<View>(R.id.anim_layout)var downAnim = ObjectAnimator.ofFloat(view, "translationY", 0F, 100F, -100F)downAnim.repeatMode = ValueAnimator.REVERSEdownAnim.repeatCount =
2021-05-12 16:07:52 3925 2
原创 深入理解JVM之编译优化
前端编译与优化前端编译器把*.java文件转变成*.class文件的过程JDK的Javac、EclipseJDT中的增量式编译器(ECJ)Java虚拟机的即时编译器(常称JIT编译器,JustInTimeCompiler)运行期把字节码转变成本地机器码的过程HotSpot虚拟机的C1、C2编译器,Graal编译器静态的提前编译器(常称AOT编译器,AheadOfTimeCompiler)直接把程序编译成与目标机器指令集相关的二进制代码的过程JDK的Jaotc、GNUComp
2021-04-29 15:51:30 136
原创 深入理解JVM之高效并发
Java内存模型与线程Java内存模型Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节.此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的,不会被共享主内存与工作内存Java内存模型规定了所有的变量都存储在主内存(Main Memory)中每条线程还有自己的工作内存线程的工作内存中保存了被该线程使
2021-04-29 15:49:32 178
原创 【学习笔记】深入理解java虚拟机之类的探索
类文件结构Class类文件的结构Class文件是一组以8个字节为基础单位的二进制流,数据按照严格顺序紧凑排列在文件中,中间没有任何分隔符。当遇到需要占用8个字节以上空间的数据时,会按照高位在前的方式分割成若干个8个字节进行存储。这种顺序称为“Big-Endian”,具体顺序是指按高位字节在地址最低位,最低字节在地址最高位来存储数据。Class文件格式采用一种伪结构来存储数据,这种伪结构中只有两种数据类型,“无符号数"和"表”。无符号数属于基本类型,以u1、u2、u4、u8分别表示1个,2个,4
2021-04-26 16:51:10 359
原创 【Android】问题总结:Aroute There`s no route matched
问题背景:清理项目资源之后,发现使用Aroute跳转失效,弹Toast提示There`s no route matched问题定位首先查看了一下要跳转activity的跳转调用,声明是否异常// 跳转ARouter.getInstance().build("/detail/detail") .navigation(this);// 声明@Route(path = "/detail/detail")排查确认无问题冷静地分析了一下,可能是由于把项目资源其他j
2021-04-01 16:29:16 1135
原创 【学习笔记】深入理解java虚拟机之探索虚拟机内部和垃圾回收
深入理解java虚拟机2021-03-12概述Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想;它提供了一种相对安全的内存管理和访问机制,避免了绝大部分内存泄漏和指针越界问题;它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增长而获得更高的性能;它有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助用户实现各种各样的功能...
2021-03-29 16:17:46 205
原创 【算法之路】Leecode No.9 回文数【简单】
出处回文数描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。分析首先理解回文数的定义。说白了就是倒过来跟原数一样就是回文数。那么自然我们就可以想象到把这个数直接倒过来判断是否和原数一
2020-12-08 19:28:01 304
原创 【Android】【通过xml方式可以改变背景的ViewGroup,而非在代码中动态设置】
背景预实现一个切换tab,实现选中与未选中的背景切换,特别之处在于选中背景图和未选中背景图高度不相同,切换之后需要在java代码中动态设置LayoutParams改变高度。预期效果当前问题点选中背景为.9图,未选中背景为xml中通过shape实现。将当前ViewGroup设置为选中状态的固定高度选中效果正确,但是未选中背景会与选中背景同高,底部边框并未与选中背景平齐,如图通过设置下边距实现设置padding与margin都无效,具体原理简单来说就是我设置的是ViewGrou
2020-11-23 11:28:56 214
原创 【Unity游戏开发】Android中如何集成Unity3D项目——入门级踩坑
最近的学习之路真的是波折,显示想学Kotlin,结果赶上了算法比赛,恶补了几天算法,然后回归Kotlin,这周又需要调研一下Unity3D,需要把Unity项目嵌入到我们的Android项目中。今天,就在今天,老子经过3天的折磨终于把demo跑起来了,此刻的心情真的是比发工资都爽,这可能就是学习的乐趣吧,期间遇到了无数多的问题,再加上关于Android中集成Unity项目的文档也没有帮我解决这些问题,所以总结一下吧,以后复习,也相当于帮以后有这方面需求的人踩雷了吧。我们话不多说开始了。这里写目录标题涉及
2020-11-13 18:35:38 4098 2
原创 【算法之路】Leecode No.329 矩阵中的最长递增路径【困难】
出处矩阵中的最长递增路径描述给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例输入: nums = [[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。输入: nums = [[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方向上
2020-10-27 19:56:04 228
原创 【算法之路】Leecode No.2 两数相加【中等】
出处两数相加描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807分析从示例我们可以看到,这个跟我们小时候学的
2020-10-21 19:25:53 183
原创 【算法之路】Leecode题解汇总(java)
背景算法对程序员有多重要还用说嘛,现在诸多大厂面试都硬指标考核算法,虽然平时用的不多,但是用的不多不代表它没用,只能说我们目前还没上升到追求算法极限的境界。近期喜迎1024程序员节,公司举办了算法大赛,没错,我厚颜无耻的报名了,虽然是一个算法小歘歘,但是万一运气好,出的题都会呢。所以最近的kotlin学习也停止了,没事开始刷题,为了以后得方便,本次刷题就直接记录下来。以后不定期更新。声明: 本文中的解法有一些是根据大神讲解自己理解之后敲的,也有一些是自己想到的(这种一般人都能想到),如有雷同,绝壁是误
2020-10-21 14:59:07 1173
原创 【算法之路】Leecode No.1 两数之和
出处Leecode No.1描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]分析暴力解法这道题不难,大多数人都可以直接想到最简单的暴力解法。依次取出数组中的每个元素,
2020-10-21 14:57:36 316
原创 【Kotlin】编码规范
本文主要针对一些常用的编码规范进行总结,后续还会不断补充,整体跟java除了某些语法不一致,大体格式都是一样的。编码规范源代码组织目录结构源文件名称文件只有一个类(可以有也可以没有顶层声明)文件包含多个类,或者没有类只有顶层声明源文件组织类布局类中的内容通常排序嵌套类接口实现布局重载布局命名规则包名类名函数及变量名源代码组织目录结构纯kotlin项目中,目录结构中可以省略公共根包的包结构对于JVM平台的项目,Kotlin文件应该与java文件遵循同意规则,即根据文件的包结构存储在对应的目录结构中
2020-10-10 16:48:01 298
原创 【Kotlin】求生之路——Kotlin中常用的的基本类型【类比java学习】
Kotlin的数据类型针对java的数据类型对比,我们来学习Kotlin的数据类型。基本数据类型KotlinJava字节Bytebyte / Byte整型Int & Longint / Integer & long / Long浮点型Float / Doublefloat / Float & double / Double字符Charchar / Character字符串StringString可以看到 K
2020-09-29 15:27:40 476
原创 【算法与数据结构】数据结构之线性表
线性表初步了解线性表或称为有序表(Ordered Likst)本质:线性表 就是n个元素的有限序列(n≥0)如:最简单的有序表就是字母表:A,B,C,D,…,Z就是 一个线性表。线性表定义线性表数据元素可以是任何一种类型对于同一线性表的每一个元素都必须属于同一类型线性表可以 形容为:可以是空集合,或者可写成 (a₁## 线性表初步了解线性表或称为有序表(Ordered Likst)- 本质:线性表 就是n个元素的有限序列(n≥0)> 如:最简单的有序表就是字母
2020-09-25 10:52:45 206
原创 【Kotlin】 学习之路
背景目前来说Android开发越来越不好干了,虽然我们只是一个客户端的工程师,但是一方面我们要忍受住学习java,深入JVM的研究的痛苦,另一方面目前大前端的趋势很多应用的界面都使用H5去实现,这又抢了Android的一份羹,同时我们还要学习各种新型的Kotlin,以及跨平台的技术如Flutter,React Native等,不过辉煌的人生必定是伴随着痛苦,最近准备学习Kotlin,特起此系列博客记录总结学习过程中的知识点还有遇到的问题。官方文档:https://kotlinlang.org/docs
2020-09-24 17:20:09 487
原创 【java踩坑之路】问题总结:关于调用System.out.print()无法打印,而System.out.println却可以打印问题
背景最近在学习Kotlin,在学习过程中发现了一个问题,发现了一个很神奇的问题,困扰了好久。特此记录。问题描述使用System.out.print(“test”); 在logcat中看不到日志,将print替换成println就可以看到。代码代码比较简单,只把部分测试关键代码附上,大家可以先别看答案,猜测一下是否会打印。// 例子1,直接使用print输出。System.out.print("111111111111111");// 例子2, 连续使用print输出System.out.
2020-09-24 11:39:33 6682
原创 【Android】问题总结:在Activity的onCreate中直接跳转到其他Activity界面时,跳转动效异常
背景当前应用在Appliacation启动时初始化三方SDK,在担任Launcher的Activity中动态获取权限,然后从Launcher中跳转到主界面时,弹出应用的隐私声明。由于工信部近期的规定,要求三方SDK的初始化和获取权限需要在隐私声明之后,所以需要调整。拟定的方案在SplashActivity(AndroidManifest中配置的Launcher activity)中的onCreate中进行处理,如果没有之前没有同意过隐私声明(使用SP进行保存)则弹出隐私声明,待用户同意之后再请求权限
2020-09-22 19:58:12 956
原创 【Android】没用的知识点系列-startActivityForResult
背景项目中某需求需要调用startActivityForResult,但是关于requestCode设置为多少,我犹豫了一段时间,原因如下:项目中并无明确requestCode相关文档和规定当前requestCode比较乱,下至1,上至2000+均有定义于是我就产生了一个问题,requestCode如果定义重复了会发生什么,是否会导致多个activity同时在onActivityResult中触发呢?寻求真理的过程找大神博客关于requestCode的定义的博客很少,找到了一篇博客的结论是
2020-09-22 11:16:34 256
原创 2020年找工作总结之【自我介绍】
自我介绍只要是面试我想都会有自我介绍,我们首先要明白面试官为什么上来第一个问题就要我们自我介绍,他的目的是什么呢?我觉得最主要的原因就是除了简历,自我介绍是最能让面试官了解你的个人情况,你的优势是什么的方式了。所以如何通过自我介绍让面试官最快、最全面的了解你,怎么才能突出你的优势呢?一般自我介绍我们只需要控制在2分钟左右就可以了,不需要什么都进行展开,如果我们说的某个方面面试官感兴趣,他自然会问,我们需要的就是言简意赅地介绍一下自己就行了。在面试过程中尤其是自我介绍阶段一定要展现的自信一点,不要吞吞吐吐
2020-09-02 21:34:29 508
原创 【程序员面试】校招和社招的区别
校招的面试侧重点学校(没办法,同等水平还是会看你的学校的),这个之前看过一个总结觉得说的很有道理。为什么HR会优先选择好学校的候选人?原因是从优秀的人里面选择一个更优秀的人会更容易,这样可以解决时间成本。声明:本人并非歧视学校不太好的同学,个人认为这个只能标记你大学之前的状态,没办法完全用这个去衡量一个人的,但是话说回来,没办法,这个社会什么时候都存在这种对比,有好就有坏。所以我们也能理解HR这样做的原因,换个角度考虑,如果我是HR,我想我也走这个捷径吧。我想你也看到我上边写的同等水平的前提了吧.
2020-09-02 10:44:19 2893
原创 2020年找工作总结-面经
背景:现在都说互联网的大环境不好,工作难找,但是由于生活压力还有以后的职场压力,我不得不在今年踏上了找工作的路,从去年8,9月份陆陆续续开始学习,为了找工作准备,一直到今年的6月份尘埃落定,也算是总结了一些东西。不得不说,如果学习不是为了找工作的话,每天做做算法题看看源码其实也挺快乐的,但是现在这个社会,人都非常有惰性,比较浮躁,能坚持下来的很少很少(看看美剧,玩玩游戏他不香嘛)基本都处于一个间接性踌躇满志,持续性混吃等死的状态,我也一样。但是考虑到我也老大不小,马上到了三十而立的年纪,不能在这样下去了
2020-08-27 22:21:35 182
原创 【android】【listview item 设置onItemClick之后不起作用】
刚入职,接手的第一个问题,原理跟简单,就是android事件分发的问题。【背景】51用户反馈应用列表只有第一项(默认项)功能正常,其他item无法点击。【问题定位】1. 观察界面发现除了第一个item,其他项都是置灰的,怀疑是不是这个界面本身就不能点击,由于产品目前属于后转维过来的,这个目前已经无法考证了,没办法,没有捷径只能手撕代码了。2. 手撕代码发现listview 同时设置了onTouch和onItemClickListennerlistview.setOnTouchLis
2020-08-17 19:56:19 690
原创 【Android】 Service 知识点总结和运用
Service知识点总结链接分享:https://www.open-open.com/lib/view/open1364094651062.htmlService:Android四大组件之一,通常不具有界面,用于运行后台程序service不会自动创建线程,如果处理耗时的后台任务,需要创建线程使用,否则运行在主线程可能会出现ANR创建service必须实现继承于service,并重载...
2019-12-04 22:14:52 269
原创 Activity源码分析再分析
标题为什么叫源码分析再分析看过几次源码,发现源码里面的东西太多了,如果不带着问题,或者没有重点的进行看的话,很容易就陷入了一个方法的调用之中,所以我决定借鉴一下其他人的分析,然后再加上自己的总结,如果有疑问我会在进行分析的过程中找一下对应的源码,自己理解一下。当然一定要附上原地址,这是对别人成果的一种肯定。感谢这位兄弟。原地址:https://blog.csdn.net/lmq121210...
2019-12-02 21:44:28 227
原创 【android】Activity启动模式
目录Activity的启动模式任务栈TaskAffinity:任务相关性。allowTaskReparenting的使用activity需要启动模式的原因activity的四个启动模式1. standard:标准模式,系统的默认模式2. singleTop:栈顶复用模式3. singleTask:栈内复用模式4. singleInstance:单实例模式...
2019-11-20 22:00:58 178
原创 【android面试】知识点
概论:整理一下android需要的知识点,后续有机会会把所有知识点自己的学习笔记或者个人觉得比较好的博客都放进来,当然我是一定会注上出处的,(我怕别人告我)1. Activity的生命周期(必问,建议看一下源码,学习一下,感觉整套流程还是很值得借鉴的,我已经lililala看了两遍了,加上别人的总结,也没太看懂,果然一次能看懂源码的都是大神)https://blog.csdn.net/a5...
2019-11-20 21:59:10 144
原创 Activity的生命周期实践
我将带头冲锋!网上好多讲activity的生命周期的帖子,相信大家都看了好多遍,我也看了无数遍,但是好记性不如烂笔头、实践出真知、动了手才是自己的。。。相关的谚语太多了,哈哈,其实就是总结实践一下,怕自己忘。关于activity基本上面试的第一个问题除了自我介绍就是说一下生命周期了,我相信每个搞安卓的都知道,onCreate、onStart。。。所以这部分的知识还是很重要的,本文将从以下几...
2019-11-06 20:49:51 267
原创 【android界面适配】关于viewHolder导致listitem切换横屏之后边距不对的问题总结
今天解决了一个问题,1. listview切换横屏之后,item左边距不对导致界面被打孔屏截断2. 横屏下切换多屏模式之后切换回竖屏,item左边距太大全部代码在最下边以我丰富的界面适配的经验来看(哈哈哈),呵,很简单呀,没监听到横竖屏变化还有切换多屏模式的监听呀,so easy。于是查看代码,发现是被其他同事将adapter中getview的时候进行的边距适配逻辑改了,将...
2019-09-05 22:00:15 511
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人