首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    技术揭秘,QAPM的这位Android内存分析“专家”

    QAPM原有Android内存快照分析是基于那个颇具历史感的MAT的命令行版本开发的。MAT到现在都依旧是最最强大的内存快照分析工具,就是他那个类SQL的查询能力灵活性就已经甩很多工具N条街。但是我们是个基于大数据的监控平台,我们用大数据来帮助研发聚焦问题根因的愿景,MAT的数据处理性能明显赶不上我们。后面我们发现了开源项目LeakCanary的Shark Android Extension更新,虽然功能有点简单,能处理部分安卓内存泄露,很简单内存触顶分析模块,但是用kottin重写,传说性能是以前的3倍。为了让技术赶上我们的愿景,我们切换到了Shark。下面我们从两个维度来说说,我们基于Shark如何进一步地性能优化,功能上,我们对其进行强化,加入图片重复,图片超尺寸,字符串重复,对象重复分析与问题引用链聚类等更复杂的Hprof分析。

    04

    谨慎!大数据挖掘这些误区你注意到了?

    近两年大数据真的很热,但一个过热的现象就一定会有很多误区,很多人看了是网上海量数据“淘”出来的分析就认定了是“真理”,深信不疑,其实这里头很可能埋伏了误区,使用不慎会误导决策。 那里大数据能作什么?不能作什么?基于过去六年参予的相关项目及和计算机学界合作的经验,我有一个初步的看法。 大数据当然很有用,最明显的就是茫茫网海中找一个人或一小群人,“人肉”的威力我不再赘述了。 其次,我想找一个商机,如果在大数据中挖出一百万人表达对某一“产品”的关注,这绝对会有足够的消费者,让产品赚钱,所以大数据的商业应用前景十分

    06

    android的四大主件

    Android有四大组件:Activity、Service、Broadcast Receiver、ContentProvider。 Activity 做一个完整的Android程序,不想用到Activity,真的是比较困难的一件事情,除非是想做绿叶想疯了。因为Activity是Android程序与用户交互的窗口,在我看来,从这个层面的视角来看,Android的Activity特像网站的页面。 Activity,在四大组件中,无疑是最复杂的,这年头,一样东西和界面挂上了勾,都简化不了,想一想,独立做一个应用有多少时间沦落在了界面上,就能琢磨清楚了。从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,就需要派生一个Activity的子类,然后埋头苦干上述事情。对于Activity的更多细节,先可以参见:reference/android/app/Activity.html。后续,会献上更为详尽的剖析。 Service 服务,从最直白的视角来看,就是剥离了界面的Activity,它们在很多Android的概念方面比较接近,都是封装有一个完整的功能逻辑实现,只不过Service不抛头露脸,只是默默无声的做坚实的后盾。 但其实,换个角度来看,Android中的服务,和我们通常说的Windows服务,Web的后台服务又有一些相近,它们通常都是后台长时间运行,接受上层指令,完成相关事务的模块。用运行模式来看,Activity是跳,从一个跳到一个,呃...,这有点像模态对话框(或者还像web页面好了...),给一个输入(抑或没有...),然后不管不顾的让它运行,离开时返回输出(同抑或没有...)。 而Service不是,它是等,等着上层连接上它,然后产生一段持久而缠绵的通信,这就像一个用了Ajax页面,看着没啥变化,偷偷摸摸的和Service不知眉来眼去多少回了。 但和一般的Service还是有所不同,Android的Service和所有四大组件一样,其进程模型都是可以配置的,调用方和发布方都可以有权利来选择是把这个组件运行在同一个进程下,还是不同的进程下。这句话,可以拿把指甲刀刻进脑海中去,它凸显了Android的运行特征。如果一个Service,是有期望运行在于调用方不同进程的时候,就需要利用Android提供的RPC机制,为其部署一套进程间通信的策略。 Android的RPC实现,如上图所示(好吧,也是从SDK中拿来主义的...),无甚稀奇,基于代理模式的一个实现,在调用端和服务端都去生成一个代理类,做一些序列化和反序列化的事情,使得调用端和服务器端都可以像调用一个本地接口一样使用RPC接口。 Android中用来做数据序列化的类是Parcel,参见:/reference/android/os/Parcel.html,封装了序列化的细节,向外提供了足够对象化的访问接口,Android号称实现非常高效。 还有就是AIDL (Android Interface Definition Language),一种接口定义的语言,服务的RPC接口,可以用AIDL来描述,这样,ADT就可以帮助你自动生成一整套的代理模式需要用到的类,都是想起来很乏力写起来很苦力的那种。更多内容,可以再看看:guide/developing/tools/aidl.html,如果有兴致,可以找些其他PRC实现的资料lou几眼。 关于Service的实现,还强推参看APIDemos这个Sample里面的RemoteService实现。它完整的展示了实现一个Service需要做的事情:那就是定义好需要接受的Intent,提供同步或异步的接口,在上层绑定了它后,通过这些接口(很多时候都是RPC的...)进行通信。在RPC接口中使用的数据、回调接口对象,如果不是标准的系统实现(系统可序列化的),则需要自定义aidl,所有一切,在这个Sample里都有表达,强荐。 Service从实现角度看,最特别的就是这些RPC的实现了,其他内容,都会接近于Activity的一些实现,也许不再会详述了。 Broadcast Receiver 在实际应用中,我们常需要等,等待系统抑或其他应用发出一道指令,为自己的应用擦亮明灯指明方向。而这种等待,在很多的平台上,都会需要付出不小的代价。 比如,在Symbian中,你要等待一个来电消息,显示归属地之类的,必须让自己的应用忍辱负重偷偷摸摸的开机启动,消隐图标隐藏任务项,潜伏在后台,监控着相关事件,等待转瞬即逝的出手机会。这是一件很发指的事情,不但白白耗费了系统资源,还留了个流氓软件的骂名,这真是卖力不讨好的正面典型。 在Android中,充分考虑了广泛的这类需

    02

    【大咖说】徐宗本院士:大数据与智能制造融合应用

    2017中国工业大数据大会·钱塘峰会,由工信部、浙江省人民政府指导,中国工业经济联合会、信通院、互联网协会、浙江省经信委、萧山区人民政府共同主办,杭州市 经信委、浙江省工业经济联合会、浙江省信息化促进会、萧山科技城联合承办,于2017年5月5日在杭州国博中心顺利召开。会议围绕“数据驱动创新、融合引领发展”主题,进行探讨交流。现将中国科学院院士、西安交通大学教授徐宗本精彩演讲实录如下: 作为一个数学家,用现在的话讲,应该是一个数据科学家。今天,我的绝大部分内容是从基础上演讲。在听了各位领导致辞和专家演讲

    07

    特别专题 | 传统企业大数据应用案例【一】

    导读:变革洪流总是起于微处,大数据时代一批企业已成为引领变革的先行者。本周钱塘大数据为大家专题盘点“谁是数据英雄?传统企业大数据应用案例”六连发,第一期给大家介绍《制造业新风向——航天三江用大数据驱动智能制造》 ,全文详解“航天三江”在搭建的大数据交换平台上,系列布局有关产品生命周期管理,价值管理, 质量信息管理及信息化管理等方面的应用案例,望对您有所借鉴。 信息时代,大数据正在成为社会中最有价值的资源体之一。它不为人所见,却又无处不在……企业已渐渐成为大数据应用的主体。大数据真能改变企业的运作方式吗?答案

    08

    弈聪软件卓建超:政务大数据平台建设警惕成为过去共享数据平台的翻版

    随着大数据应用的不断推进,数据开始被视为重要的战略资源,在政治领域数据的所有权是一种新的权利源泉。围绕原始数据的占有权和发布权的斗争将成为一个持久性的政治议题。随着大数据在中国的不断发展,各个地方都开始兴建大数据中心,但对于大数据中心建设,更多地还停留在“建机房、上设备、堆数据”的阶段,忽视了大数据强调的是对数据的分析和应用。西安弈聪信息技术有限公司(简称:弈聪软件)创始人卓建超认为,当前一些地方政府建设的大数据平台很多是过去政府共享数据平台的“翻版”。由于目前尚无对“大数据”的标准界定,政府部门对大数据的认识存在混乱,有将开放数据等同于大数据,有将任何“大”的政府数据集的发布都当作是大数据。政府推动大数据平台建设的首要目的不是推动大数据应用,而是统一政府信息基础设施,实现各部门数据的互联互通。事实上很多开放数据只是离散的“小数据”,并不具备大规模、未经处理和非结构化等大数据的基本特征,且很多通过开放数据机构发布的在线数据集仅仅是一个可用的样本集。

    05
    领券