Android项目实践--手机安全卫士开发
文章平均质量分 86
asmcvc
这个作者很懒,什么都没留下…
展开
-
1、创建工程及splash界面
项目使用Intellij IDEA开发,可以参考:http://blog.csdn.net/asmcvc/article/details/17144951配置开发环境。1、splash界面设计界面是一个RelativeLayout显示一个背景图,右上角显示程序的当前版本号,中间显示一个加载的环形进度条。对应的xml为:<RelativeLayout xmlns:a原创 2013-12-23 19:01:18 · 2628 阅读 · 2 评论 -
39、流量统计--原理
Android流量统计来说在2.2版中加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取 Linux提供的文件对象系统类型的文本进行解析。android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计。1. static long g原创 2014-01-26 11:38:44 · 2191 阅读 · 0 评论 -
28、通信卫士--界面设计
如图,点击主界面的“通信卫士”项目后显示黑名单拦截界面。顶部一个TextView显示标题,一个View显示分割条。底部一个button用来添加黑名单。中间一个listview用来显示已经设置的黑名单列表。在页面加载时,读取数据中的黑名单列表,需要使用线程来做,并且在读取过程中一直显示进度条显示“正在加载中……”因此进度条和listview有重叠,加载时显示进度条,加载完毕后设置其可原创 2014-01-17 17:37:34 · 1564 阅读 · 0 评论 -
37、进程管理器--界面设计
创建android component:TaskManagerActivity,并为其创建布局文件taskmanager_layout:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width原创 2014-01-24 17:42:13 · 1833 阅读 · 1 评论 -
38、进程管理器--代码实现
首先需要一个结构保存进程信息:package com.example.mobilesafe.engine;import android.graphics.drawable.Drawable;/** * Created by sing on 14-1-26. * desc: */public class ProcessInfo { private static final原创 2014-01-26 11:01:04 · 2535 阅读 · 0 评论 -
24、高级工具--程序锁原理
程序锁的原理是一个“看门狗”的服务定时监视顶层activity,如果activity对应的包名是之前上锁的应用程序的,则弹出一个页面要求输入解锁密码,此页面不运行用户按“BACK”键返回,否则便能不输入密码直接进入应用程序了。如果密码输入正确则进入应用程序。创建一个android component,kind为service,类名为:WatchDogService:package com.原创 2014-01-16 14:00:00 · 7515 阅读 · 1 评论 -
27、高级工具--程序锁的几个BUG
1、接上文,我们锁定了UC浏览器,现在打开设置中心,关闭程序锁服务然后再打开程序锁服务:目的是让看门狗服务关闭后再重新启动,使得tempStopProtectPacknames清空。然后按HOME键回到手机桌面,启动UC浏览器,弹出输入密码框:输入正确密码后点确定,显示的并不是UC浏览器的界面,而是:也就是刚刚在设置中心的界面。问题原因:acti原创 2014-01-16 17:10:26 · 1616 阅读 · 0 评论 -
26、高级工具--在设置中心中启用程序锁服务
在设置中心中添加代码: //程序锁设置 private View rl_setting_applocker; private TextView tv_setting_applocker_status; private CheckBox cb_setting_applocker;//程序锁设置 rl_setting_applocker = fin原创 2014-01-16 14:57:53 · 1630 阅读 · 0 评论 -
25、高级工具--利用provider对程序锁实时更新
接上文,WatchDogService只在onCreate里获取被锁定的应用程序包名列表:lockPacknames = dao.findAll();如果服务一旦被启动后,用户想要重新添加、删除某些应用程序的锁定或解锁操作,WatchDogService的lockPacknames列表并不能进行实时更新。因此需要一个内容观察者,当有内容发生变化时能够接收到通知,WatchDogService便原创 2014-01-16 14:20:51 · 1924 阅读 · 0 评论 -
23、高级工具--程序锁界面设计
界面效果图:在加载安装的应用程序列表时,显示进度条:布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" andro原创 2014-01-15 16:24:49 · 2569 阅读 · 5 评论 -
40、流量统计--界面设计
这里联系使用抽屉控件SlidingDrawer,布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_heig原创 2014-01-26 14:19:07 · 2515 阅读 · 1 评论 -
41、流量统计--代码实现
类似程序管理器、进程管理器里的软件信息、进程信息,设置一个TrafficInfo结构体来表示流量信息:package com.example.mobilesafe.engine;import android.graphics.drawable.Drawable;/** * Created by sing on 14-1-26. * desc: */public class Tr原创 2014-01-26 14:23:05 · 8798 阅读 · 2 评论 -
33、程序管理器--界面设计
实现效果如图:一个标题,一个分割条,两个文本一个用来显示可用内存一个显示sd卡的可用内存,一个列表显示安装的程序。因此布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_w原创 2014-01-21 13:36:39 · 1518 阅读 · 2 评论 -
32、通信卫士--设置中心
在设置中心完成设置的代码: //来电黑名单设置 private View rl_setting_black_call; private CheckBox cb_setting_blackcall; private TextView tv_setting_blackcall_status;//来电黑名单设置 rl_setting_black_ca原创 2014-01-20 15:21:16 · 1544 阅读 · 0 评论 -
29、通信卫士--添加、删除、修改黑名单号码
接上文,点击按钮“添加黑名单”弹出对话框可以添加黑名单号码和拦截方式:对话框布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent"原创 2014-01-20 14:10:30 · 4830 阅读 · 1 评论 -
31、通信卫士--拦截黑名单电话
当黑名单号码打进来时,自动挂断,并且在通话历史记录中删除该条记录。挂断电话的操作可以通过PackageManager对象来实现,但是在android1.5以后,该方法没有暴露出来,需要通过AIDL来实现。一个是ITelephony.aidl,从网上搜索下载:/* * Copyright (C) 2007 The Android Open Source Project * * Li原创 2014-01-20 14:51:44 · 2957 阅读 · 0 评论 -
30、通信卫士--拦截黑名单短信
在SmsReceiver代码里添加对接受的短信发信人的黑名单检查即可: //检查是否是黑名单号码 int mode = dao.findNumberMode(sender); if (mode == STOP_SMS) { Log.i(TAG, "拦截黑名单短信");原创 2014-01-20 14:16:58 · 2270 阅读 · 0 评论 -
45、系统优化--代码实现
CleanCacheActivity代码:package com.example.mobilesafe;import android.app.Activity;import android.content.Intent;import android.content.pm.IPackageStatsObserver;import android.content.pm.PackageIn原创 2014-01-26 17:08:03 · 2602 阅读 · 1 评论 -
44、系统优化--界面设计
布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <原创 2014-01-26 17:02:09 · 2012 阅读 · 0 评论 -
43、手机杀毒--代码实现
病毒库直接使用assets目录下的antivirus.db文件,查询该数据库的类AntiVirusDao:package com.example.mobilesafe.db;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase原创 2014-01-26 15:24:40 · 5599 阅读 · 4 评论 -
42、手机杀毒--界面设计
如图:布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_paren原创 2014-01-26 15:19:50 · 2032 阅读 · 0 评论 -
22、高级工具--常用号码查询,ExpandableListView的使用
高级工具--常用号码查询,ExpandableListView的使用原创 2014-01-14 17:33:39 · 1437 阅读 · 1 评论 -
21、高级工具--来电归属地提示框的位置设置
创建设置提示框位置的activity:DragViewActivity以及布局文件。代码:package com.example.mobilesafe;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.util.L原创 2014-01-14 17:04:20 · 1733 阅读 · 0 评论 -
19、高级工具--设置中心的更新
由于添加了高级工具的“来电显示归属地”的功能,需要对设置中心进行更新,实现的界面效果:对应的布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_par原创 2014-01-13 17:00:26 · 1537 阅读 · 0 评论 -
6、手机防盗--密码设置
在主界面点击第一个功能“手机防盗”进入手机防盗页面,如果是第一次进入则弹出密码设置框让用户设置密码,否则弹出密码输入框让用户输入密码进入。界面效果图:原创 2013-12-25 18:03:22 · 2985 阅读 · 0 评论 -
3、下载更新APK
下载文件以及安装APK的功能封装成通用函数,方便重用。下载文件封装到DownLoadUtil类中,安装APK的功能封装到util类中。这两个类统一放在com.example.utils包下管理。在工程中新建包:com.example.utils,并在该包下分别创建类DownLoadUtil、util,其中DownLoadUtil:package com.example.utils;原创 2013-12-24 16:16:11 · 2506 阅读 · 0 评论 -
2、更新提示
在进入splash界面的时候后台启动线程,联网检查是否有更新版本可用,如果没有新版本则splash界面显示后进入主界面,否则显示升级对话框让用户选择是否进行更新。1、权限设置因为需要联网,所以AndroidManifest.xml文件需要添加访问网络的权限:本人就是由于忘记添加该权限,在后面的运行中出现错误:12-23 03:24:26.999 1528-1541/com.e原创 2013-12-23 19:25:16 · 7113 阅读 · 3 评论 -
5、设置中心--设置自动更新
首先实现九大模块中“设置中心”的“自动更新”选项,默认该选项是开启的:打勾并且字体黑色。关闭状态:去勾并且字体设置为灰色。效果图:在主界面中为item添加点击事件,当点击“设置中心”item时打开对应的Activity:原创 2013-12-24 17:34:38 · 1527 阅读 · 0 评论 -
4、主界面UI设计
主界面设计效果:一共分为三个部分:TextView显示“我的手机卫士”,一个View用于分割,中间一个GridView用于显示九大功能模块的图标和名称。对应的layout为:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="v原创 2013-12-24 17:19:46 · 2111 阅读 · 0 评论 -
15、手机防盗--远程指令
当手机被偷后,由于sim卡换掉会向安全号码发送通知信息。这个时候安全号码就可以发送带有远程控制命令的短信到手机上,实现:获取手机位置、远程锁屏、播放报警音乐、清除数据等操作。编写短信广播接受者,创建SmsReceiver:package com.example.mobilesafe.receiver;import android.app.admin.DevicePolicy原创 2014-01-03 17:39:23 · 3899 阅读 · 0 评论 -
13、手机防盗--向导设置完成界面
todo原创 2013-12-31 15:40:36 · 1655 阅读 · 0 评论 -
14、手机防盗--变更sim卡发送通知
如果手机被盗,变更sim卡需要重启手机。那么在手机重启时设置广播接受者,并发送给安全号码通知短信。原创 2013-12-31 15:41:39 · 2653 阅读 · 2 评论 -
9、样式的学习与使用
手机防盗设置向导中,一共有四个步骤,第一个界面如下:后面步骤类似,考虑到相同风格的控件使用较多,使用样式来完成。以上图界面为例,划分的布局为:TextView显示:1.欢迎使用手机防盗View显示分割条TextView显示:您的手机防盗卫士连续四个:ImageView+TextView一个Horizontal风格的LinearLayout居中显示四个圆圈图片,表原创 2013-12-26 17:17:01 · 1327 阅读 · 0 评论 -
17、高级工具--号码归属地查询
号码归属地数据库文件直接使用assets/naddress.db,号码归属地查询类NumberAddressDao:package com.example.mobilesafe.db;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDat原创 2014-01-10 16:53:25 · 1964 阅读 · 2 评论 -
16、高级工具页面设计
创建android component:AToolsActivity,并勾选layout文件的创建选项:atoolsactivity_layout.xml。布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" and原创 2014-01-10 16:44:13 · 1561 阅读 · 0 评论 -
18、高级工具--显示来电与外拨电话号码的归属地
新建包com.example.mobilesafe.service,在该包下创建服务ShowCallLocationService,继承自service。package com.example.mobilesafe.service;import android.app.ActionBar;import android.app.Service;import android.content原创 2014-01-13 16:54:18 · 2215 阅读 · 0 评论 -
20、高级工具--更改归属地显示风格
点击设置中心的“来电归属地风格设置”弹出如下对话框供用户选择设置中心代码:package com.example.mobilesafe;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.原创 2014-01-13 17:31:20 · 1428 阅读 · 0 评论 -
35、程序管理器--显示卸载、启动、分享的PopupWindow代码实现
在AppManagerActivity中为listview设置item的点击事件:lv_apps.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView adapterView, Vie原创 2014-01-21 15:46:23 · 1579 阅读 · 0 评论 -
34、程序管理器--显示卸载、启动、分享的PopupWindow界面设计
效果图:原创 2014-01-21 15:27:53 · 1407 阅读 · 0 评论 -
36、程序管理器--显示卸载、启动、分享的代码实现
接上文,PopupWindow中的点击事件:/** * PopupWindow中的点击事件 */ public void onClick(View v) { switch (v.getId()) { case R.id.ll_popup_share: Log.i(TAG, "分享");原创 2014-01-21 15:55:34 · 1807 阅读 · 0 评论