android冷启动小研究
随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关。来看一下Google官方文档《Launch-Time Performance》 对应用启动优化的概述;
随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关。来看一下Google官方文档《Launch-Time Performance》 对应用启动优化的概述;
程序 = 算法+数据结构
编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。这些基础课程是“内功”,新的语言、技术、标准是“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。
笔者的mac,装了Android File Transter 可以连接国内的华为,小米,魅族之类的手机。
但是比如vivo系列,oppo系列就无法连接。这个时候需要手动添加设备id,识别。
OOM问题会经常困扰我们,尤其是维护一个用户数量基数大的app的时候,我们的bug统计数据前几位,基本上会被OOM问题给占据。通过结果反向分析问题,和在写代码的时候注意内存泄漏从而避免OOM,本质上都需要对内存泄漏的产生,以及几种常见的方式需要有着清晰的认识。
新上的项目,需要发布12个渠道,小米,魅族,华为等等。就涉及到多渠道打包问题。小结一下。
各大手机机型层出不穷,适配问题也是方法尽出。
我在 2018年 8 月份离职了,这份工作实际干了不超过4个月,主要是团队项目管理原因,每天干活干的特别憋屈,功劳是别人的,锅都是自己的。当初进入这家公司也是够蠢的,只注重短期利益,忽略长远发展,简单概括就是短视。这家公司是一个有20人不到的团队。具体的细节不阐述了。说说得到的经验教训。
新公司的驾考类产品稳定运行了好几年,最近接手的时候发现居然没有进行混淆处理。这无异于在大马路上裸奔。反编译之后,分分钟拿到你的所有源码。
马上将这一情况报告给leader,leader是搞ios出身的。同意了。原本以为一天就搞完了,后来的经历告诉我,还是太年轻了。
接着我才理解这个项目的前辈们不搞混淆的原因,这是一条漫漫长坑。
其实混淆本身不难,难的是一个项目历尽几手,尾大不掉。很多意外的坑。
金三银四。求职的好机会。第一个需求发展,第二个看看市面上需要什么样的人才,找准自己的定位。坐标南京。面试了努比亚,苏宁,焦点科技,地平线机器人。
最近维护原有的老项目的时候,发现gradle版本居然是2.1版本,难怪我说编译需要花费5分钟!!!尤其是现在的gradle稳定版本已经4.1+的情况下,显得更慢。
本着时间就是金钱的理念,开启了我的升级填坑之旅!、
相信大部分准备过java面试的同学都知道Java中的String是final修饰,不可变的。可是只知道是什么,不知道为什么是一件非常危险的事情。因为任何事情都没有绝对。
我们先看看什么是不可变对象。
项目场景:
存在需求:
可不可以不让用户重新安装就可以解决上述场景?
欢迎来到桂圆的第二人生。
这是我的第一篇博文。万事开头难,不过凡事要具体了的话,就会很深入,深入的话就会迎刃而解。
TexitView 在开发中是一个非常常见的控件,但是在限制字符串行数的时候,存在两个属性都可以控制单行。为啥google采用两种实现方式呢?
android开发,涉及到自定义view的时机会非常的多,完成一个非常优质的view,view必须和用户又一个非常良好的交互。view的事件处理就是一个很重要的环节。
本文是对view有一定基础的总结。
在实际开发中,我们会发现,fragment会与外界有一些信息传递,例如activity传递信息进入fragment。
使用android手机的时候,有时候会出现卡屏,无法动弹的情况。本文就简单的说明一下程序无响应的问题。
问题提出的背景:自己在做launcher的新功能,摇一摇切换壁纸的时候。需要动态获取壁纸的id,然后填充到布局上。这样在后期维护的时候,就不需要过多的改动代码,直接增减图片,以及在配置文件(wallpapers.xml)中修改就好了。
adapter用的很多,android 5.0之后,采用recycleview来取代之前的listview。其中最大的一点就是让大家习惯于用viewholder.自己小结一下viewHolder的好处。
根据android对view的绘制原理,我们可以看到每一次对画布中view的寻找,是自上而下的,所以每一次findviewbyId的消耗非常大。