2018
10-26
	
				10-26
Android开发技术周报 Issue#179
    
				
																新闻AndroidP应用将悄悄崩溃而不是弹出对话框I/O2018:谷歌将强制厂商定期推送Android安全更新AndroidP从iPhoneX上学到了滑动手势操作的精髓谷歌推安卓应用新模型:安装包变小功能模块化AndroidStudio3.2Canary发布新增大量实用功能AndroidP发布:AI交互、新手势、更省电、回归生活AndroidP导航栏整合成一颗虚拟键增加免打扰模式十年最大革新Androi...     
				
				继续阅读 >
			
			
			
											在上一篇文章中我们对Android中内存有了一个基本的了解,在本文继续介绍有关内存溢出的相关点。当内存泄漏超过一定的界限,必然会引起内存溢出,有些内存泄漏在开发中是比较常见的,接下来通过介绍几种常见额内存泄漏情形,以便在开发过程中采取必要的措施以此防止内存泄漏。如下是Android开发者在开发中比较常见的几种内存泄漏,并给出了相对应的防止内存泄漏的解决方式。单例模式引起的内存泄漏单例模式可以说在A...     
				
											前言目前在app上通过记录用户操作(俗称埋点),来分析用户行为的做法,已经成了app必不可少的一部分。有关app的埋点技术,也在发展中。正好最近项目组研发了一个埋点的sdk,所以把相关知识梳理下。埋点方式1、代码埋点这种方式主要是由程序猿们手动在代码中的回调事件里加上埋点代码。优点是高度定制,想怎么埋怎么埋,缺点是工作量大,而且易出错,难维护。2、可视化埋点这种埋点方式分为...     
				
											Android内存泄漏是一个经常要遇到的问题,程序在内存泄漏的时候很容易导致OOM的发生。那么如何查找内存泄漏和避免内存泄漏就是需要知晓的一个问题,首先我们需要知道一些基础知识。Java的四种引用强引用:强引用是Java中最普通的引用,随意创建一个对象然后在其他的地方引用一下,就是强引用,强引用的对象Java宁愿OOM也不会回收他软引用:软引用是比强引用弱的引用,在Javagc的时候,如果软引用所引用的对象被回...     
				
											关于Android模块化我有一些话不知当讲不当讲最近公司一个项目使用了模块化设计,本人参与其中的一个小模块开发,但是整体的设计并不是我架构设计的,开发半年有余,在此记录下来我的想法。模块化场景为什么需要模块化?当一个App用户量增多,业务量增长以后,就会有很多开发工程师参与同一个项目,人员增加了,原先小团队的开发方式已经不合适了。原先的一份代码,现在需要多个人来维护,每个人的代码质量也...     
				
											AndroidO推出了一项新的功能「FontsinXML」,借助这项功能,我们能够像使用其他资源文件一样使用字体,比较方便地实现App全局字体的替换。为了能够在API14或者以上的设备上使用FontsinXML特性,我们需要使用到SupportLibrary26。更多的内容可以参考「使用SupportLibrary」小节。在AndroidStudio中按照如下步骤将字体作为资源文件添加至工程:右键单击项目的app/res文件夹,然后选择New>An...     
				
											最近在做新业务需求的同时,我们在Android上遇到了一些之前没有碰到过的问题,截屏分享、WebView生成长图以及长图在各个分享渠道分享时图片模糊甚至分享失败等问题,在这过程中踩了很多坑,到目前为止绝大部分的问题都还算是有了比较满意的解决方案。以下就从三个方面来总结一下过程中遇到的挑战和最后的解决方案。一、概述最近在做新业务需求的同时,我们在Android上遇到了一些之前没有碰到过的问题,截屏分享、...     
				
											在应用开发中,我们常常会进行日志打印或者debug调试,以此来分析运行时的一些信息,便于发现bug和问题。AndroidStudio的Debug功能很好用,但是有时候有些情况下,就显得不是那么快捷和便利。比如我们调试的点在应用一打开的时候,很靠前,例如Application的onCreate方法中,以至于我们不能足够快的设置进程为debug模式虽然上面的情况可以通过AndroidStudio的debug运行来解决,但是如果项目很大的话,运行...     
				
											一、滑动效果的产生滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件,并且根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。(1)、Android的坐标系Android中将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如下图:系...     
				
											一、AndroidView动画框架Animation框架定义了透明度、旋转、缩放和位移几种常见的动画,控制的整个View,实现原理是每次绘制视图时View所在ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。如果没有完成就继续调用invalidate()函数,启动下次绘制来驱动动画,从而完成整个动画的绘制。视图动画使用简单,效...     
				
											在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError-内存溢出),本篇博客,我们将一起探讨Bitmap的性能优化。为什么Bitmap会导致OOM?1.每个机型在编译ROM时都设置了一个应用堆内存VM值上限dalvik.vm.heapgrowthlimit,用来限定每个应用可用的最大内存,超出这个最大值将会报OOM。这个阀值,一般根据手机屏幕dpi大小递增,dpi越小的手机,每个...