精华内容
下载资源
问答
  • 手机卫士11_ 自定义控件_缓存清理_病毒更新 拷贝安卓源码中的逻辑,可以考虑先创建一个小项目实现以下效果 1,病毒数据库的自动更新(连接网络,然后获取特征码保存到数据库?) ①工程师发现病毒apk,...

    拷贝安卓源码中的逻辑,可以考虑先创建一个小项目实现以下效果

    1,病毒数据库的自动更新(连接网络,然后获取特征码保存到数据库?)

    ①工程师发现病毒apk,获取到它的特征码发布到服务器上

    通过 MD5 或者ASH1获取特征码

    ②客户端杀毒软件下载特征码(可能是 JSON)到本地客户端

    (在打开软件的时候还是打开查杀界面的时候?其实都不适合,应该开启一个服务去定期更新数据库,访问病毒更新特征码地址)

    定期更新,timertimertask,一般一个小时更新一次(测试的时候写短一点)

    连接服务器:Url对象,获取链接HttpUrlConnection,设置超时时间,请求方式,

    获取响应码,判断结果,最后转换输入流为字符串.转换成json对象

    ③本地客户端解析特征码,然后保存至数据库,最后查杀病毒.

    解析服务器的病毒库版本,获取本地病毒库的版本(对应的表).

    如果不一致,就添加新的病毒条目到本地,并且更新版本.

    额外:①添加条目的时候记得查看DDL数据模式定义,语言查看表结构

    ②如果要更新数据库条目和版本,记得开启数据库事务,保持一致性.

    db.beginTransaction();//开始数据库事务

    db.beginTransactionSuccessful();//事务执行成功

    db.endTransaction()//结束事务,写在 finally.

    ③要记得开启服务,放在splash里开启即可.(要判断病毒数据库是否存在)

     

    额外:检测恶意APP还有:文件检验,行为分析等,很多查杀病毒方式.

     

    2,横竖屏切换的生命周期

    2.1横竖屏切换的时候界面重新创建activity,解决方式:

    ①固定横竖屏.

    ②不让activity重建.

     

    2.2 自定义控件的显示样式:

    查找源码>>styles样式文件,找到想要查看的显示样式

    根据不同的样式节点,查看对应的xml样式文件.

    进度条实际上有三层,一个背景,两个进度(大进度,小进度,参考播放器进度)

    //不想写就拷贝源码中的文件,修改参数即可,把进度背景改成想显示的图片(要替换的话,三个背景图片最好都替换掉)即可.

    要注意对应的属性名,不要搞错了,不然不生效。

    参考背景设置xml资源

    <?xml version="1.0" encoding="utf-8"?>

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">   

    <item  android:id="@android:id/background" android:drawable="@drawable/progress_bg">

        </item>

    <itemandroid:id="@android:id/secondaryProgress"android:drawable="@drawable/security_progress"> </item>

     <itemandroid:id="@android:id/progress"  android:drawable="@drawable/security_progress">

        </item>  

    </layer-list>

     

    3, 缓存清理功能

    3.1 ui

    ①缓存清理,SD卡清理,痕迹清理(暂时不用)三个选项卡,使用Fragment碎片界面.

    ②主界面ui参考:

    记得给这让两个小选项卡的背景变换(表示一个被选中,一个没选中.参考home界面的条目小背景,一个透明的边框线)

    点击一个选项卡之后,还要记得切换它们的图标资源(醒目的和不醒目的图片,文本颜色也可以修改掉,更好看一些,?)记得改布局的默认颜色,不然第一次打开颜色还是黑色.

    Fragment,存放所有碎片文件(考虑向下兼容,使用v4)

    创建类继承Fragment,重写onCreate,返回的View 代表这个碎片布局样式.

    布局样式:暂无,写一个TextView的文本标记一下即可.

    获取上下文:getActivity();

    Activity

    点击事件:创建Fragment 继承类对象.

    获取支持FragementManager.beginxXX再获取事务.

    然后ft.replace(id,对象);最后ft.commit();

    额外:一开始指定一个帧布局,在打开功能页面的时候就能显示它.

     

    3.2 清理缓存的功能

    什么是缓存:临时文件的的存储,当系统资源不足的时候 会回收缓存空间

    ①在缓存的Fragment里,扫描所有应用程序的缓存目录,如何实现?

    查找源码(看看安卓自己是怎么做的):

    在设置界面的应用程序可以看到每个应用程序的缓存内容,通过这一点去找到系统源码的setting源码,

    如果直接把setting源码导入工程,会报错,因为它是在框架下进行编译的,依赖框架里的api,而工程里缺少很多系统底层开发的api,所以会报错。

    查询源码:查找特定字符,根据特定字符去查找源码,ctrl+H搜索

    一致追寻到获取缓存信息的代码.packageStats api

     

    ②代码获取缓存数据

    PackagerManage pm

    pm.getPackageSizeInfo();获取包大小信息,但是这个方法被隐藏了.

    通过反射获取到这个方法//获取字节码对象,获取到所有方法

    //其它自己探索

    额外:注意权限问题

     

    3.3 Fragment ui布局:(可以用ListView 也可以直接用LinearLayout填充空白数据)

     

    ②在Fragment onStart()方法编写获取所有应用程序的缓存

    //获取所有包信息,根据包名,利用反射获取缓存信息.

    ③记得更新界面ui,扫描进度,扫描的文本,

    判断是否存在缓存,存在缓存就把有缓存的消息(有缓存的AppLiaction和缓存大小,可以考虑创建一个对象去封装这些信息)发给主线程

    要让条目点击发生状态改变,设置背景资源状态选择器

    显示缓存的ui优化:参考ui.

     

     

    4清除某一个程序的缓存信息

    4.1

    查看系统源码setting中清楚缓存的按钮点击事件中的代码逻辑

    pm.deleteAppliCationCacheFile()//也是被隐藏的,通过反射去调用它

    额外:注意权限异常。但是这个权限只能给系统app使用,所以这个逻辑无法实现

    解决方式:曲线救国,用户如果点击了单个应用的清除缓存,就跳过setting的详细页面,让用户自己去实现这个清除功能。

     

    4.2 BUG 如果到别的页面再返回清理缓存界面,旧数据和新数据都显示在页面上。

    onStart()//界面可见的时候,添加一条逻辑,每次可见就清空一次布局中的子控件

    ll.reamoveAllViews();

     

    5,清除全部缓存:安卓系统的漏洞:让系统发送广播,硬盘空间不够用,系统回收缓存。

    实现方法:发送一个消息给操作系统,我要申请一个非常大的空间。就会回收缓存了。

    实现步骤①:增加一个新按钮

    ②找到这个控件,点击的时候申请一个非常大的空间

    PackageManager>>freeStorageAndNotify(申请空间,观察者接口);

    //申请一个可用空间,观察者返回的是最大可申请空间(能返回多少返回多少)

    这是一个隐藏的api

    申请的空间,integer.MaxValue//2G,231次方 为2G

    权限:CLEAR_APP_CACHE//安卓的漏洞,谷歌没有检查这个权限的使用app(system).

     

    额外:清楚完缓存之后,清楚掉下面所有的子控件,从而更新界面显示。

     

    6.SD卡清理:

    扫描SD卡中的文件(递归遍历SD卡文件夹,筛选常见缓存文件拓展名.tmp.temp

    把遍历出来的缓存文件显示在界面上,用户可以手动清空所有文件(删除掉).

    额外:市面上的清理SD卡还会根据一个数据库(储存市面上常见APP的缓存目录)来判断这个缓存文件属于哪一个APP来提示用户,提高用户体验

     

     

     

    posted on 2016-06-21 23:36 抓根宝 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/adventurer/p/5605434.html

    展开全文
  • 360手机卫士 v5.4.0

    2015-01-11 18:35:03
    一键清理非系统进程,提升手机运行速度。 是2014年度用户量最高的手机安全类软件,快来体验360安全卫士官方下载最新版本吧! 支持单双卡机型。 绿色、安全、免费、好用。 360手机卫士V5.4.0正式版 新增安全通道,...
  • 更新日志: 一、全新UI及交互风格 ...6、缓存清理,释放手机空间 7、加快开机速度,弹指之间 8、软件卸载搬家?安全大师帮你 9、权限管理,我的手机我做主 10、省电优化,用的更久 11、拒绝骚扰,来电防火墙帮忙
  • 1、试题下载后,请勿使用360手机卫士清量垃圾或百度手机卫士大文件清理,以免已下载的最新试题清理掉,而要重新下载; 2、软件题库在考前将不定时的更新最新最全的专家押题、今年易考题目,请勿错过!
  • 后来发展成一个可以自动清理U盘中Auto病毒的工具。2009年用Visual Basic做了一个外壳程序,同时增加了一些功能。2009年毕业后,用VB和VB script改写了绝大多数的批处理代码。后又经过几次改版具有了U盘杀毒精灵的...
  • 团购导航程序CV2.0

    2011-04-08 17:36:36
    9.手机号码增加是否中有重复号码的判断; 1028 修复自动采集 完善自动分类 自动分类关键字功能 用户注册增加用户名 批量删除过期团购信息 批量清理无效会员 采纳网站后自动转为网站主 1001 修复团购导航采集不入...
  • 提供两种核算方法,加权平均法和指定批次法,如果你的商品需要批号与有效期管理请选择指定批次法,系统初始化可以随时清理软件所有的数据然后重新建立新数据,可以根据需要设置自动备份,也可手工备份,避免电脑出现...
  • 一键全自动卸载无残留,清理注册表干净无需操心 4.下载管理 能够管理正在下载的程序和已经下载的程序 驱动人生软件管家产品特征 1.通过与开发商合作精选打造拥有上万款正版软件的软件。 2.独有的匹配规则能...
  • 销售自动出库,并自动更新库存,出库统计,入库统计,自 动累计,每一供应商的未付款,欠瓶等; 经营状况分析 强大的经营分析报表,业务员,配送员的配送明细表与提成报表,每日销售配送报表,水票统计报表,配 ...
  • 提供两种核算方法,加权平均法和指定批次法,如果你的商品需要批号与有效期管理请选择指定批次法,系统初始化可以随时清理软件所有的数据然后重新建立新数据,可以根据需要设置自动备份,也可手工备份,避免电脑出现...
  • 可删除指定时间范围内的数据,支持自动清理早期数据,设置最大保存记录数。 支持报警短信转发,支持多个接收手机号码,可设定发送间隔,比如即时发送或者6个小时发送一次所有的报警信息,短信内容过长,自动拆分多条...
  • GD 扩展 MySQL 扩展 JSON 支持 TuziCMS企业网站管理系统更新日记: 1.【修复】上下篇url在兼容模式下出错。(2016.01.23解决) 2.【修复】万能标签调用不出文章描述。(2016.05.10解决) 3.【修复】单页模型...
  • 可以先下载apk运行到手机上看看效果,下载链接地址: apk如下所示 组件化apk的下载地址 02.项目运行 运行环境要求 Android studio 版本需要在3.0之上,compileSdkVersion是28,gradle版本是3.2.1,gradle-...
  • 8.数据清理时没有把退酒水单记录清除的问题。 9.大厅点单丢结帐单的问题。 10.赠品直接出品时把该包厢酒水单都出品掉的问题。 11.出品不打单时不自动出品的问题。 12.修改模式退单时,帐单作废后生成的酒水退单...
  • 078《Bookmarks clean up》高效清理重复和损坏的书签 077《Sourcegraph》阮一峰大佬推荐的github仓库关键词搜索工具 076《Listen1》Chrome听付费歌曲工具!免费听周杰伦的歌,网易云音乐,QQ音乐,虾米音乐,酷狗,...
  • 下载流程:清理进程和数据(包括修改设备信息)、切换IP、登录appID、打开App Store、在App Store搜索应用、下载并安装app(打码)、注销app ID、关闭App Store、卸载app 评论流程:在下载流程的基础上进行评论 ...
  • # 游戏活动(包括,新闻,活动,公告,更新,指南类目)附带玩家评论系统 # 游戏下载 # 游戏反馈(论坛形式,反馈游戏问题,支持图片发布) # 排行榜 (包含,角色,战盟,家族 排行) 扩展如下: # 货币管理...
  • 支持自动清理缓存及预览文件 支持http/https下载流url文件预览 支持FTP url文件预览 加入Docker构建 2019年04月08日 : 缓存及队列实现抽象,提供JDK和REDIS两种实现(REDIS成为可选依赖) 打包方式提供zip和tar....
  • 黑马安卓52期视频教程

    热门讨论 2015-06-24 22:15:48
    03.根据设置来决定是否自动更新 04.自定义属性 05.自定义组合空间总结 06.闪屏页渐变动画 07.手机防盗登录密码校验 08.Root权限介绍 09.Md5加密&暴力破解 10.手机防盗设置向导开发 11.9Patch图片的制作 12.状态选择...
  • 极限网上商店系统,属于全自动化、智能的全在线方式管理、维护、更新的网上商店系统。用这套网店系统,建设网上商店,将不是网络专家的专利,通过强大的管理后台,您就能非常方便的建设、管理、维护、更新您自己的...
  • iPhone开发秘籍(第2版)--详细书签版

    热门讨论 2012-12-11 13:42:25
    1.3.3 手机 6 1.3.4 Core Location的差异 6 1.3.5 振动支持和接近传感器 6 1.3.6 处理器速度 6 1.3.7 OpenGL ES 7 1.4 平台限制 7 1.4.1 存储限制 7 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    1.3.3 手机 6 1.3.4 Core Location的差异 6 1.3.5 振动支持和接近传感器 6 1.3.6 处理器速度 6 1.3.7 OpenGL ES 7 1.4 平台限制 7 1.4.1 存储限制 7 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互...
  • 当连接关闭时,smsgate会自动调用handler里的channelInactive方法,可在此方法中实现连接关闭后的一些清理操作。 如何不改源码,实现修改框架默认的handler 比如SGIP协议要设置NodeId;你需要这样做: 1、写一个...
  • (一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。) 停止 adb server 命令: adb kill-server 查看 adb 版本 命令: adb version 示例输出: Android Debug Bridge version ...
  • 4.2.5 使用和Android SDK版本 70 4.2.6 在Manifest文件中定义应用程序的其他配置参数 71 小结 71 第5章 管理应用程序资源 72 5.1 什么是资源 72 5.1.1 应用程序资源的存储方式和位置 72 5.1.2 资源...
  • 如果没有安装IDE设备,我们可以选择NONE参数,这样可以加快系统的启动速度,在一些特殊操作中,我们也可以通过这样来屏蔽系统对某些硬盘的自动检查。 图中2部分是DRIVE A和DRIVE B软驱设置,如果没有A或B驱动器,...
  • 包含各种工具类的集合,会不定期更新,欢迎贡献code 使用方法: 2.0.0以后,放弃了support,请使用AndroidX implementation 'com.easyandroid:easytools:2.0.3' 然后,在自己的Application中调用Utils.init(this)...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

手机自动更新清理库