毕设是做一个基于android的手机安全助手,因为也是android新手,边学边做,记录一下做个过程和学习心得,以便写毕业论文也方便以后复习。希望能通过这个项目,基本掌握android开发,不至于虚度光阴。
首先是需求分析,我要做的手机助手主要有一下几个功能:1 通讯卫士,用户可以设置黑名单,当黑名单上的号码来电时实现自动挂断。2 软件管家,这个功能可以列出用户已安装的所有app以及系统应用。可以从这里启动,卸载,分享和设置。卸载提供系统app需要root权限。 3 进程管理,本功能主要是列出正在运行的进程,包括用户进程和系统进程。用户可以选择某些进程进行清理,已释放系统内存。 4 程序锁,列出所用应用,用户可以选择加锁的应用,当用户打开加锁的应用时,需要输入之前设置的密码才能进入。可以在设置中设置是否打开程序锁功能,如果是第一次使用本功能,需要在设置中设置密码。5 流量监测,列出所用需要互联网流量的应用,显示其上行和下行的流量。 6 设置,在设置里可以选择打开或者是关闭黑名单功能和程序锁功能。本app所要完成的基本功能如上。
接下来介绍实现的步骤:第一步,设计好总体界面,将所有的功能都列出,留出接口以待后面实现。第二步,实现通讯卫士功能。第三步,实现软件管家功能。第四步,实现进程管理功能。第五步,实现程序锁功能。第六步,实现流量监测功能。第七步,实现设置功能。下面分步介绍每一个功能点是如何实现的。
在介绍每一个功能之前,先说一下android的一些重点知识:四大组件,sqlite数据库,布局,handle,线程,android6.0之后的动态申请权限。android分为四大组件即,Activity,Service,ContentProvider,BroadcastReceiver。其中Activity是一个与用户交互最密切的组件,用户看的就是一个个的Activity。
启动activity的三种方式:
1. 显示方式
①最常见的:
startActivity(new Intent(当前Act.this,要启动的Act.class));
(new Intent(当前Act.this,要启动的Act.class));
②通过Intent的ComponentName:
ComponentName cn = new ComponentName("当前Act的全限定类名","启动Act的全限定类名") ;
Intent intent = new Intent() ;
intent.setComponent(cn) ;
startActivity(intent) ;
cn = new ComponentName("当前Act的全限定类名","启动Act的全限定类名") ;
Intent intent = new Intent() ;
intent.setComponent(cn) ;
startActivity(intent) ;
③初始化Intent时指定包名:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setClassName("当前Act的全限定类名","启动Act的全限定类名");
startActivity(intent);
intent = new Intent("android.intent.action.MAIN");
intent.setClassName("当前Act的全限定类名","启动Act的全限定类名");
startActivity(intent);
2.隐式方式
隐式启动:通过Intent-filter的Action,Category或data来实现 这个是通过Intent的 intent-filter**来实现的
3.
另外还有一个直接通过包名启动apk的:
Intent intent = getPackageManager().getLaunchIntentForPackage
("apk第一个启动的Activity的全限定类名") ;
if(intent != null) startActivity(intent)
intent = getPackageManager().getLaunchIntentForPackage
("apk第一个启动的Activity的全限定类名") ;
if(intent != null) startActivity(intent)