拍照神器手机探测自己十八岁的样子神器

内存泄露自动探测神器----LeakCanary - 简书
下载简书移动应用
写了78066字,被247人关注,获得了1833个喜欢
内存泄露自动探测神器----LeakCanary
今天刷微博,发现各位Android开源大神都在转发一条关于Square开源的自动探测内存泄露库LeakCanary的信息。
LeakCanary
自动探测内存泄露,这也太牛逼了吧!进入@扔物线110 分享的链接了解了下,对原文作简单翻译:(翻译水平有限,凑合看吧-_-)
原文:LeakCanary开源库地址:
LeakCanary:探测所有内存泄露!
java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2)
at android.graphics.Bitmap.createBitmap(Bitmap.java:689)
at com.squareup.ui.SignView.createSignatureBitmap(SignView.java:121)
没有人喜欢OOM错误的出现
在Square Register应用中,我们实现在一个位图缓存bitmap cache中让客户签名,这个bitmap占据设备屏幕的大小,当我们创建一个bitmap时,会出现一个很严重的OOM问题。
我们试过几种方法,但是没有一种可以解决这个问题:
使用 Bitmap.Config.ALPHA_8 (一种不需要颜色的签名)
捕捉OOM错误,触发GC,并重试几次(由想起的)
我们并不打算脱离Java heap分配位图内存。对于我们幸运的是,开源图片处理库Fresco至今不存在这个问题
其实,我们一直以一个错误的方式思考这个问题了这个bitmap的尺寸不是问题所在。当内存几乎满时,OOM随时会发生。OOM常会发生在你创建大对象如bitmap的地方。OOM出现是一个更深层次问题内存泄露的征兆。
什么是内存泄露(memory leak)?
一些对象有有限的使用期,当它们的工作完成后,它们预期会被当作内存垃圾回收。如果一个持有对象的引用链结束了它的预期寿命,这将会产生一个内存泄露。随着泄露的积累,应用程序将会耗尽内存。例如,Activity的onDestroy()被调用后,这个Activity的视图层次和相关的位图都应该进行垃圾回收。而如果一个线程在后台运行这个Activity的引用,那么相应的内存将不能被回收,这最终就导致了OutOfMemoryError的出现。
搜寻内存泄露(memory leaks)
搜寻内存泄露是一个手动过程,在Raizlabs上的系列文章中得到很好的描述。
这里是关键步骤:
通过, 或Google的了解OOM问题;
尝试重现问题。你需要想尽办法找到出现内存泄露的设备(You might need to buy, borrow, or steal the specific device that suffered the crash.) 不是所有设备都有内存泄露问题。或者你也需要自己制作内存泄露。
当OOM出现时进行堆转储(dump the heap);
使用MAT或YourKit内存检测工具检测内存的变化,并找出哪个对象应该被垃圾回收;
从那个对象到GC roots推断最短的强引用路径;
在路径中找出不存在的引用,并修复
要是有一个库能够在程序出现OOM前做这些检测,让你专注于解决内存泄露,那该多好呀?(注:好,LeakCanary正能做到!)
LeakCanary的介绍
是一个在调试时就可以检测内存泄露的Java开源库。
看个cat类的例子:
class Cat {
class Box {
Cat hiddenC
class Docker {
Box box = new Box();
Cat schrodingerCat = new Cat();
box.hiddenCat = schrodingerC
Docker.container =
创建一个Refwatcher的实例并传入一个Cat对象:
// We expect schrodingerCat to be gone soon (or not), let's watch it.
refWatcher.watch(schrodingerCat);
当泄露被检测到时,可以自动地获取到泄露的地方:
* GC ROOT static Docker.container
* references Box.hiddenCat
* leaks Cat instance
我们知道你正忙着写功能,所以我们使LeakCanary更容易地设置。只用一行代码,LeakCanary就可以自动检测活跃的泄露。
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
当内存不足时,会有一个通知和良好的展示界面:
notification
使用LeakCanary后,我们在我们的app中发现并修复了很多内存泄露问题,我们甚至发现了一些。有了LeakCanary的结果是惊人的,我们现在减少了94%的OOM错误。
如果你想消除OOM引起的崩溃,!
注:搜索资料时,发现和上开发者对LeakCanary满满的赞言,Square(电子现金支付公司)确实是非常棒的一家公司,Github上有很多优秀的开源项目,如, , , , 等。技术型驱动的公司就是赞!
第一次翻译才知道自己的英语有多渣o(?□?)o, 做技术的,英语水平低确实是一个瓶颈,好好加油吧!
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
分享Android开发的知识,教程,解析,前沿信息,都可以,欢迎大家投稿~
内容可搞笑,可逗比,另外欢迎申请管理员
? 20370人关注
Android老鸟给新人的建议、资源。
更优质的原创内容,欢迎关注技术公众号,微信搜索:“Open软件开发小组”或者“open_dev”
? 11803人关注
干货技术文。
? 3349人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:捉奸神器:智能床垫可以探测床上可疑行为_网易科技
捉奸神器:智能床垫可以探测床上可疑行为
用微信扫码二维码
分享至好友和朋友圈
我们常说法国人浪漫,但法国人却说西班牙人玩得比他们更high,high到都需要靠床垫来进行规制了。一个西班牙的床垫制造商Durmet,做出了一张据称可以检测到床上是否有人在啪啪啪的床垫,专门对付板牙国内已经泛滥成灾的不忠问题。这种床垫内置24个超声波传感器,可以探测出床上正在进行的可疑行为,并通过智能手机的客户端程序通知用户。这张床垫叫做Smarttress,它在床垫的弹簧内暗藏了许多震动感应器,配合接触区检测,如果发现读数开始有规律地大幅度起伏,与之相连的app会立即收到包含速度计和每分钟啪的次数的通知。为了让床上的情况更加生动地演绎,这个app甚至还对这些数据做了可视化,看着网状图像的起伏就可以知道他们究竟是在床上的哪个位置办事的。相信看到这里很多人已经心动想要买一张了,但小编更愿意相信他们其中的大部分买回去都是和伴侣自用的——数据分析,科学优化啪啪啪姿势才是它比较和谐的用法。
本文来源:爱活网
责任编辑:丁广胜_NT1941
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈系列解读三:那些助阵春运安检的“检测神器”_春运安检仪器,手持式金属探测器,检测仪器_本网原创_中国化工仪器网
系列解读三:那些助阵春运安检的“检测神器”
----手持式金属探测器
& & 【中国化工仪器网 本网原创】11与26日,2016年春运火车票开售,由此一年一度的春运潮拉开帷幕。火车站的盛况可以想象,尤其是国家法定春节假期间,几近&爆仓&的人潮涌动追赶车流,这不仅仅考验着铁道部的12306购票系统,同时也考验着春运安检。安全问题,至关重要。而速度、精准、灵敏,是使用者及旅客对仪器的三大要求,春运检测仪器更不例外。那将有哪些检测神器将助阵春运安检呢?在系列解读的开端,已经为大家解读过最常见的&X射线安检仪&和安检门,那本次解读的也是十分常见的安检仪器&&&手持式金属探测器&。&&&&&&通常在行李通过X射线安检仪的同时,旅客要经过金属安检门,在铁路安检员的指引下,接受随身物品的安检,安检员手持金属探测器,通过张开双臂、转身等简单连贯的动作扫描一身,一分钟内完成检测。&&&&&&解读一:何为手持式金属探测器?&&&&&&手持金属探测器是金属探测器的一种,因手握的使用方式而得名,主要用于场所安检、考场防***、工厂防盗等,用来探测人或物体携带的金属物及其具体位置,,如武器、炸药或小块金属制品等。灵敏度高、反应快速、定位准确、操作简单、手持轻便是其主要特点。&&&&&&(手持式金属探测仪安检中)&&&&&&解读二:手持式金属探测器的检测原理是什么?&&&&&&本质上是利用电磁感应原理。金属探测器发出的电磁波,在靠近金属导体时会在导体里产生涡流,从而影响金属探测器,触发报警装置。(手持式金属探测器部件名称)&&&&&&&&&&&&&具体原理是:当载有交变电流的试验线圈靠近导体时,由于线圈产生的交变磁场会使导体感生出电流(即涡流),而涡流又会产生磁场,反作用影响原来的磁场产生变化,触发金属探测器的报警装置,发出蜂鸣声或持续震动,以提示有金属物体。&&&&&&同时通过仪器测出试验线圈电压或阻抗的变化,理论上还可以检测出该导体的电导率、磁导率等性质,当然金属探测器只需探测出是否存在导体即可。&&&&&&解读三:解读手持式金属探测器能否被干扰?&&&&&&首先,探测器有探测的距离,距离太远,探测灵敏度会变弱;&&&&&&其次,这类金属探测器只对金属导电材料或者能感生涡流的非金属材料有效,除非将金属的导电性移除&&但并不建议大家去干扰或尝试干扰探测器,不然你可能变成可疑人员。&&&&&&解读四:可与金属探测门配合使用& &&安检门即金属探测门。相比安检门,手持金属探测器更加精确,两者可配合使用。&&&&&&&安检门&报警发现金属物品时,用手持式金属探测器即可找到藏有金属物品的准确位置。金属探测器采用长方形检测头,探测区长12公分,检查人体时,从上到下一次性完成检查工作。&&&&&&(手持金属探测器的人体扫描方式)& & & & & & 那通过本期的解读,大家应该对过安检时这个哔哔响的探测器,有了更进一步的了解。那为了快速通过安检,不耽误出行行程,建议随身就不要携带日用用品如硬币外的金属物品了。下一期将为大家解读"那些助阵春运安检的检测神器(四)&&危险品、易燃品检测仪器&,敬请关注哦!&&相关阅读:&&&&&&
(来源:中国化工仪器网)
关注本网官方微信 随时阅权威资讯
全年征稿 / 资讯合作
联系邮箱:
版权与免责声明
凡本网注明“来源:中国化工仪器网”的所有作品,版权均属于中国化工仪器网,转载请必须注明中国化工仪器网,,违反者本网将追究相关法律责任。
本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
近日,国务院发布《“十三五”国家科技创新规划
“检验检测支撑中国制造2025”的2016年“全国检验检测机构开放日”活动9月6日在西安启动
“2016中国民营企业500强”榜单8月25日揭晓。在去年以来国内外形势更加错综复杂和经济下
日前,中央全面深改领导小组正式审议通过《关于省以下环保机构监测监察执法垂直管理制度
第八届慕尼黑上海分析生化展(analytica China 2016)将于-12日在上海新国际博览中心拉开帷幕。
第八届慕尼黑上海分析生化展(analyticaChina2016)将于-12日在上海新国际博览中心拉开帷幕。拍照探测自己十八岁的样子神器_百度知道

参考资料

 

随机推荐