Android手机输入 4636*#*#4636#*#*会显示手机应用的使用时间及时长,如何清除?

| 502: 无效网关
-- Event ID: 3648e2fad7e76646
如果您是网站管理员,点击查看。如需网站监控,可以使用。
您的浏览器
百度云加速您现在的位置是:>>> 教你揪出安卓手机中费电占内存的流氓应用
教你揪出安卓手机中费电占内存的流氓应用
时间: 13:25
编辑:组装电脑网
围观次数:
& 在是智能手机时代了,人手一部智能手机,一部分人呢用iphone,还有一大部分人用android~~~没错,一大部分人~~~用iphone的人呢,不用管那些后台啊啥的,因为它就是那样。。。但用Android的就不一样了,内存我们可以随便控制和发现,费电应用、费流量应用都能轻松抓到,今天我就来为大家简单讲解下android手机如何揪出手机中费电占内存等流氓应用~~~
& 第三方软件查看,这我就不多说了,这里我推荐几款软件,大家自行下载安装使用即可~~~
1.各种助手(例如:LBE安全大师、腾讯手机管家等)
2.内存工具(例如:内存管家、内存优化器等)
3.耗电工具(例如:耗电终结者、电池电量功耗仪等)
4.使用情况(例如:应用程序管理、应用管家等)
& 光会用第三方软件查看是不行滴,其实Google制作安卓就已经内置了系统自带的各种功耗流量等查看工具,下面撸主就一一为大家详解(以一加手机氢OS为例)~~~
1.查流量:
& 正常的安卓手机都自带了应用流量使用情况查看器,我们可以清楚的看到每个应用的流量使用情况;
进入方法:系统设置-移动网络-流量使用情况
2.查耗电:
同样,正常的安卓手机都自带了应用耗电情况查看器,我们可以清楚地看到到底哪个应用最耗电
进入方法:系统设置-电池
3.查内存:
同样,正常的安卓手机都自带了应用内存使用情况查看器,我们可以清楚地看到到底哪个应用最占内存
进入方法:系统设置-应用和权限-应用列表(点入应用查看)
4.查使用:
& 这个功能可能有些同学就不知道了,因为这个功能无法从设置里找到,但系统都会自带的~
& 进入方法:电话-拨号盘输入:*#*#4636#*#* -使用情况统计数据
& 好了,使用软件和系统自带方法都交给大家了,抓紧时间揪出你手机中费电占内存的流氓应用吧~~~~~
关注装机之家微信公众账号:(wwwlotpccom)一个关注电脑、手机、科技的订阅号
广告位招租2469人阅读
android 启动(5)
Android开发(291)
通过com.android.internal.os.PkgUsageStats这个类可以得到一个应用程序的启动次数,运行时间等信息,功能很强大。但是google并没有将这个类作为API接口提供给开发者,如果在android源码下开发,可以通过以下代码来使用这个类:
import com.android.internal.app.IUsageS
import com.android.internal.os.PkgUsageS
//比较两个应用程序的启动次数和运行时间
public final int compare(ApplicationInfo a, ApplicationInfo b) {
&&&&&&&&&&& ComponentName aName = a.intent.getComponent();
&&&&&&&&&&& ComponentName bName = b.intent.getComponent();
&&&&&&&&&&& int result = 0;
//get usagestats service
&&&&&&&&&&& IUsageStats mUsageStatsService = IUsageStats.Stub
&&&&&&&&&&&&&&&&&&&&&&& .asInterface(ServiceManager.getService(&usagestats&));
&&&&&&&&&&& try {
//get PkgUsageStats
&&&&&&&&&&&&&&& PkgUsageStats aStats = mUsageStatsService
&&&&&&&&&&&&&&&&&&&&&&& .getPkgUsageStats(aName);
&&&&&&&&&&&&&&& PkgUsageStats bStats = mUsageStatsService
&&&&&&&&&&&&&&&&&&&&&&& .getPkgUsageStats(bName);
&&&&&&&&&&&&&&& if(aStats!=null && bStats!=null) {
&&&&&&&&&&&&&&&&&&& if ((aStats.launchCount & bStats.launchCount)
&&&&&&&&&&&&&&&&&&&&&&& || ((aStats.launchCount == bStats.launchCount) && (aStats.usageTime & bStats.usageTime)))
&&&&&&&&&&&&&&&&&&& result = -1;
&&&&&&&&&&&&&&&&&&& else if ((aStats.launchCount & bStats.launchCount)
&&&&&&&&&&&&&&&&&&&&&&& || ((aStats.launchCount == bStats.launchCount) && (aStats.usageTime & bStats.usageTime)))
&&&&&&&&&&&&&&&&&&& result = 1;
&&&&&&&&&&&&&&&&&&& else {
&&&&&&&&&&&&&&&&&&& result = 0;
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& }else if(aStats!=null && bStats ==null) {
&&&&&&&&&&&&&&&&&&& result = -1;
&&&&&&&&&&&&&&& } else if(aStats==null && bStats !=null) {
&&&&&&&&&&&&&&&&&&& result = 1;
&&&&&&&&&&&&&&& }
&&&&&&&&&&& } catch (RemoteException e) {
&&&&&&&&&&&&&&& Log.i(&TAG&, &get package usage stats fail&);
&&&&&&&&&&& }
&&&&&&&&&&&
那么如果想在sdk中使用这个 类要如果作呢--可以使用反射 的方法,代码如下:
public final int compare(ApplicationInfo a, ApplicationInfo b) {
&&&&&&&&&&&&
&&&&&&&&&&&& ComponentName aName = a.intent.getComponent();
&&&&&&&&&&&& ComponentName bName = b.intent.getComponent();
&&&&&&&&&&&& int aLaunchCount,bLaunchC
&&&&&&&&&&&& long aUseTime,bUseT
&&&&&&&&&&&& int result = 0;
&&&&&&&&&&&&
&&&&&&&&&&&&& try {
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& //获得ServiceManager类
&&&&&&&&&&&&&&&&& Class&?& ServiceManager = Class
&&&&&&&&&&&&&&&&&&&& .forName(&android.os.ServiceManager&);
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& //获得ServiceManager的getService方法
&&&&&&&&&&&&&&&&& Method getService = ServiceManager.getMethod(&getService&, java.lang.String.class);
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& //调用getService获取RemoteService
&&&&&&&&&&&&&&&&& Object oRemoteService = getService.invoke(null, &usagestats&);
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& //获得IUsageStats.Stub类
&&&&&&&&&&&&&&&&& Class&?& cStub = Class
&&&&&&&&&&&&&&&&&&&& .forName(&com.android.internal.app.IUsageStats$Stub&);
&&&&&&&&&&&&&&&&& //获得asInterface方法
&&&&&&&&&&&&&&&&& Method asInterface = cStub.getMethod(&asInterface&, android.os.IBinder.class);
&&&&&&&&&&&&&&&&& //调用asInterface方法获取IUsageStats对象
&&&&&&&&&&&&&&&&& Object oIUsageStats = asInterface.invoke(null, oRemoteService);
&&&&&&&&&&&&&&&&& //获得getPkgUsageStats(ComponentName)方法
&&&&&&&&&&&&&&&&& Method getPkgUsageStats = oIUsageStats.getClass().getMethod(&getPkgUsageStats&, ComponentName.class);
&&&&&&&&&&&&&&&&& //调用getPkgUsageStats 获取PkgUsageStats对象
&&&&&&&&&&&&&&&&& Object aStats = getPkgUsageStats.invoke(oIUsageStats, aName);
&&&&&&&&&&&&&&&&& Object bStats = getPkgUsageStats.invoke(oIUsageStats, bName);
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& //获得PkgUsageStats类
&&&&&&&&&&&&&&&&& Class&?& PkgUsageStats = Class.forName(&com.android.internal.os.PkgUsageStats&);
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& aLaunchCount = PkgUsageStats.getDeclaredField(&launchCount&).getInt(aStats);
&&&&&&&&&&&&&&&&& bLaunchCount = PkgUsageStats.getDeclaredField(&launchCount&).getInt(bStats);
&&&&&&&&&&&&&&&&& aUseTime = PkgUsageStats.getDeclaredField(&usageTime&).getLong(aStats);
&&&&&&&&&&&&&&&&& bUseTime = PkgUsageStats.getDeclaredField(&usageTime&).getLong(bStats);
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& if((aLaunchCount&bLaunchCount)||
&&&&&&&&&&&&&&&&&&&&&&&&& ((aLaunchCount == bLaunchCount)&&(aUseTime&bUseTime)))
&&&&&&&&&&&&&&&&&&&&& result = 1;
&&&&&&&&&&&&&&&&& else if((aLaunchCount&bLaunchCount)||((aLaunchCount ==
&&&&&&&&&&&&&&&&&&&&& bLaunchCount)&&(aUseTime&bUseTime)))
&&&&&&&&&&&&&&&&&&&&& result = -1;
&&&&&&&&&&&&&&&&& else {
&&&&&&&&&&&&&&&&&&&&& result = 0;
&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&& } catch (Exception e) {
&&&&&&&&&&&&&&&&&& Log.e(&###&, e.toString(), e);
&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&
&&&&&&&& }
如何看自己的android的详细使用信息:
我们使用Andoroid手机时想看看自己的手机的使用情况,那么我们又如何去操作呢?也是必需得像程序这样要自己写一个程序才能查看吧,如果用户不是编程的,那得怎么办,呵,其实我们查看自己的手机使用详情是没有那么复杂的,今天就会大家说一下如何查询自己的手机的使用情况,下面是具体的查看方法,
其实查看方法非常简单,直接进入Android的工程模式即可,操作步骤如下:(笔者的android手机系统是4.0)
1、首先进入Android手机操作系统的拨号界面,直接输入“*#*#4636#*#*”(不加引号)即可以快速进入Android操作系统的工程测试模式。
2、在“测试”模式菜单中有手机信息“Phone information”、电池信息“Battery information”、WI-FI信息“WI-FI information”、使用状态“Usage statistics”四个选项。
3、我们点击选择第二项“Battery information”进入电池信息,然后就可以看到手机电池的详细信息了,其中包括电量等级、电池状态、温度、电池材质、电压等等信息。
4: 我们相应点击其实的选择就可以看到其实的相应的使用详细信息
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1539858次
积分:13930
积分:13930
排名:第780名
原创:152篇
转载:262篇
评论:244条
(1)(1)(12)(5)(1)(2)(1)(1)(6)(15)(3)(8)(6)(3)(27)(22)(25)(4)(6)(7)(7)(2)(2)(13)(8)(3)(2)(2)(11)(2)(3)(3)(14)(6)(7)(11)(1)(6)(9)(19)(14)(3)(7)(10)(3)(4)(7)(6)(14)(13)(4)(4)(22)(3)(6)(6)Android手机休眠后时间不准确的解决方案
上一篇讲到了计时的几种方法,在虚拟机中不会出现问题,但是在真机测试中,会遇到这样一种情况: 在手机进行休眠状态后,原来的睡60秒时间,大约变成了睡7分钟左右才再执行.这一直让我很不解,也没有发现代码上有什么问题.
后来发现别人也遇到了类似的问题. 发现常见的应用中,如游戏,播放器以及控制灯光显示中,都会有这种情况,
后来通过找了一个资料才知道如果要定时执行的话,要用AlarmManager,这是闹钟服务,Android手机中必须要保证AlarmManager的时钟跟真实时间同步的.所以在 Android手机休眠状态下,AlarmManager时间是不会变慢的. 以下介绍AlarmManager的基本使用.
AlarmManager简介及使用场景::
AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟。通过对它的使用,它的作用和Timer有点相似。 都有两种相似的用法: (1)在指定时长后执行某项操作 (2)周期性的执行某项操作
AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service.
当你的应用不在运行,而此时你仍然需要你的应用去执行一些操作(比如,短信拦截),只有这种时候才使用AlarmManager, 其他正常情况下的,推荐使用Handler。 AlarmManager 生命周期:repeating AlarmManager一旦启动就会一直在后台运行(除非执行cancel方法),可以在“应用管理”中看到这个应用状态是正在运行。 “强行停止”可以让Alarmmanager停掉。尝试了几种任务管理器, 都只能重置计数器(确实释放内存了),但都无法关闭定时器,只有系统自带的“强行停止”奏效。&&
如果某个AlarmManager已经启动, 程序又再次去启动它,只要PendingIntent是一样,那么之前那个AlarmManager会被release掉。
AlamManager具体方法及属性详解:
AlarmManager 包含的主要方法: // 取消已经注册的与参数匹配的定时器& & void&& cancel(PendingIntent operation) & //注册一个新的延迟定时器 void&& set(int type, long triggerAtTime, PendingIntent operation) & //注册一个重复类型的定时器 void&& setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation) & //注册一个非精密的重复类型定时器 void setInexactRepeating (int type, long triggerAtTime, long interval, PendingIntent operation) //设置时区 & void&& setTimeZone(String timeZone)
定时器主要类型:
public&& static&& final&& int& ELAPSED_REALTIME & // 当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时 间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3&&& (0x)。& & &
public&& static&& final&& int& ELAPSED_REALTIME_WAKEUP & //能唤醒系统,用法同ELAPSED_REALTIME,系统值是2 (0x) 。& & &
public&& static&& final&& int& RTC & //当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用 System.currentTimeMillis()获得。系统值是1 (0x) 。& & &
public&& static&& final&& int& RTC_WAKEUP & //能唤醒系统,用法同RTC类型,系统值为 0 (0x) 。& & &
Public static&& final&& int& POWER_OFF_WAKEUP & //能唤醒系统,它是一种关机闹铃,就是说设备在关机状态下也可以唤醒系统,所以我们把它称之为关机闹铃。使用方法同RTC类型,系统值为4(0x)。
如何使用AlarmManager?使用AlarmManager共有三种方式, 都是通过PendingIntent。
getActivity(Context, int, Intent, int)
getBroadcast(Context, int, Intent, int)
getService(Context, int, Intent, int)
这边就举一个使用BroadCast的例子。 首先是创建一个BroadCast类,需要继承BroadCastReceiver, 如下:
Copyright (c) 2011, Yulong Information Technologies
All rights reserved.
@Project: AlarmTest
@author: Robot
package com.
import android.content.BroadcastR
import android.content.C
import android.content.I
import android.util.L
* @author Robot
* @weibo [url]/feng88724[/url]
* @date Nov 18, 2011
public class ActionBroadCast extends BroadcastReceiver {
private static int num = 0;
/* (non-Javadoc)
* @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.e(&ActionBroadCast&, &New Message !& + num++);
now, 3000, pi);
这边用Repeating的方式。 每隔3秒发一条广播消息过去。RTC_WAKEUP的方式,保证即使手机休眠了,也依然会发广播消息。最后看一下AndroidManifest文件,主要是注册一下Activity和BroadCast。& (实际使用中最好再加个filter,自己定义一个Action比较好)
&manifest xmlns:android=&/apk/res/android&
package=&com.yfz&
android:versionCode=&1&
android:versionName=&1.0& &
&application
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name& &
android:label=&@string/app_name&
android:name=&.AlarmTestActivity& &
android:name=&ActionBroadCast&&
&/receiver&
&/activity
&/application&
其他用法以后待有时间补上,有部分内容可能不太准备,欢迎大家帮忙补充
原文链接:}

我要回帖

更多关于 手机输入 4636 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信