? 前几天在做一个小程序,是关于Android如何来统计应用使用的次数以及使用了多长时间。后来在网上查了一些相关资料,终于解决了。
??? 其实很简单。这是手机中自带的功能,不用同时按下什么组合按键,而是在拨号界面进行拨号即可。点击位于系统主屏的Dialer进入拨号界面,输入“*#*#4636#*#*”(不加引号)即可进入工程测试模式。这时可以看到出现了Testing的界面,包含了Phone information、Battery information、Battery history、Usage statistics四个选项,如下图,如果需要查看程序的历史运行时间,直接点击最后一项Usage statistics系统会列出一个列表信息就是各个程序的历史运行时间
这时LogCat中会打印以下信息:
因些我们可以看到Activity的 包名:com.android.settings? 类名:UsageStates
这样我们就可以写一小程序来调用该程序了。
具体代码如下:
main.xml
view plain
??? <?xml version="1.0" encoding="utf-8"?>?
??? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"?
??????? android:orientation="vertical"?
??????? android:layout_width="fill_parent"?
??????? android:layout_height="fill_parent"?
??????? >?
??????? <Button?
??????????? android:id="@+id/button"?
??????????? android:layout_width="fill_parent"?
??????????? android:layout_height="wrap_content"?
??????????? android:text="应用使用统计"?
??????? />?
????????
??? </LinearLayout>?
ActivityMain.java
view plain
??? public class ActivityMain extends Activity {?
??????? private Button button;?
??????? @Override?
??????? public void onCreate(Bundle savedInstanceState) {?
??????????? super.onCreate(savedInstanceState);?
??????????? setContentView(R.layout.main);?
?????????????
??????????? button = (Button) findViewById(R.id.button);?
?????????????
??????????? button.setOnClickListener(new Button.OnClickListener(){?
??????????????? @Override?
??????????????? public void onClick(View v) {?
??????????????????? Intent intent = new Intent(Intent.ACTION_MAIN);?
??????????????????? intent.setComponent(new ComponentName("com.android.settings","com.android.settings.UsageStats"));?
??????????????????? //intent.setClassName("com.android.settings", "UsageStats");?
??????????????????? startActivity(intent);?
??????????????? }?
?????????????????
??????????? });?
?????????????
??????? }?
??? }
?