Android程序设计课程报告_第1页
Android程序设计课程报告_第2页
Android程序设计课程报告_第3页
Android程序设计课程报告_第4页
Android程序设计课程报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android程序设计课程报告 题 目:360安全卫士 专 业:软件工程 姓名学 号: 一、 系统功能1.1 手机防盗手机防盗主要实现对手机的保护,进入“手机防盗”模块,提示用户设置手机保护密码,设置密码成功或者已经设置后进入保护程序,主要有以下几个功能:SIM卡变更警报等。1.2 通讯卫士通讯卫士主要实现对手机通讯录的备份,添加黑名单,防骚扰设置。1.3 手机杀毒手机杀毒主要实现对恶意软件的扫描,通过调用数据库中恶意软件标识特征来识别本机是否含有恶意软件。1.4 软件管理软件管理实现对软件的管理,包括系统软件和用户软件,包含软件的卸载程序。1.5 任务管理任务管理实现对系统内存中的进程进行动

2、态监控,满足用户对无响应占资源的进程结束机制。但不允许用户结束系统进程。1.6 流量管理流量管理实现对各进程访问网络数据量的监控。1.7 系统优化系统优化实现优化系统,对系统开机项进行优化、系统垃圾清理。1.8 隐私空间隐私空间实现用户保存一些重要的文件,访问需要独立密码。1.9 高级工具高级工具实现一些日常需要的帮助。1.10 设置中心设置中心实现用户对操作习惯的设置,如界面颜色、升级服务、程序锁、退出等操作。二、项目分析2.1 主界面新建类SplashActivity设置不要提示标题栏并且全屏显示。检查是否升级版本。 protected void onCreate(Bundle saved

3、InstanceState) super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.splash);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);tv_version = (TextView) findViewById(R.id.tv_splash_version);ve

4、rsion = getVersion();tv_version.setText(版本号 + version);ll = (LinearLayout) findViewById(R.id.ll_splash_main);AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);alphaAnimation.setDuration(2000);ll.startAnimation(alphaAnimation);progressDialog = new ProgressDialog(this);progressDialog.setP

5、rogressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setMessage(正在下载.);new Thread()public void run() trysleep(3000);handler.sendEmptyMessage(0);catch (InterruptedException e)e.printStackTrace();.start();private void showUpdateDialog()AlertDialog.Builder builder = new AlertDialog.Builder(this

6、);builder.setIcon(android.R.drawable.ic_dialog_info);builder.setTitle(升级提醒);builder.setMessage(info.getDescription();builder.setCancelable(false);builder.setPositiveButton(确定, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which)if(Environment.getExterna

7、lStorageState().equals(Environment.MEDIA_MOUNTED)File dir = new File(Environment.getExternalStorageDirectory(), /security/update);if(!dir.exists()dir.mkdirs();String apkPath = Environment.getExternalStorageDirectory() + /security/update/new.apk;UpdateTask task = new UpdateTask(info.getUrl(), apkPath

8、);progressDialog.show();new Thread(task).start();elseToast.makeText(SplashActivity.this, SD卡不可用,请插入SD卡, Toast.LENGTH_SHORT).show();loadMainUI(););builder.setNegativeButton(取消, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which)loadMainUI(););builder.cr

9、eate().show();private boolean isNeedUpdate(String version)UpdateInfoService updateInfoService = new UpdateInfoService(this);tryinfo = updateInfoService.getUpdateInfo(R.string.serverUrl);String v = info.getVersion();if(v.equals(version)Log.i(TAG, 当前版本: + version);Log.i(TAG, 最新版本: + v);loadMainUI();re

10、turn false;elseLog.i(TAG, 需要更新);return true;catch (Exception e)e.printStackTrace();Toast.makeText(this, 获取更新信息异常,请稍后再试, Toast.LENGTH_SHORT).show();loadMainUI();return false;private String getVersion()tryPackageManager packageManager = getPackageManager();PackageInfo packageInfo = packageManager.getP

11、ackageInfo(getPackageName(), 0);return packageInfo.versionName;catch (NameNotFoundException e)e.printStackTrace();return 版本号未知;2.2 与服务器的交互2.2.1 tomcat配置好之后在update.xml里面添加一下内容配置好服务器。其中这里的ip地址一定要写你服务器所在的电脑的ip地址,需要在Security这个目录下面放置一下new.apk的,用来更新的。1.0这里写一些这个版本的特点:8080/Security/new.apk2

12、.2.2 交互地址存起来,在项目的values目录下面新建一个config.xml文件 :8080/Security/update.xml2.2.3需要用一个model用来存放输入的更新信息,并且需要新建类com.xiaobin.security.domain.UpdateInfo从服务器中读取update.xml里面的内容,拿到apk的下载地址,和最新版本与当前版本的比较,查看是否下载。从服务器上读取update.xml新建类与服务器交互。public UpdateInfo getUpdateInfo(int urlId) throws Exception

13、String path = context.getResources().getString(urlId);URL url = new URL(path);HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();httpURLConnection.setConnectTimeout(5000);httpURLConnection.setRequestMethod(GET);InputStream is = httpURLConnection.getInputStream();return Up

14、dateInfoParser.getUpdateInfo(is);/解析xml2.2 app更新的逻辑和主页面下载apk需要另开一个线程下载,新建类。有安装逻辑后,用一个内部类用来启动另一个线程下载。class UpdateTask implements Runnableprivate String path;private String filePath;public UpdateTask(String path, String filePath)this.path = path;this.filePath = filePath;Overridepublic void run()tryFil

15、e file = DownloadTask.getFile(path, filePath, progressDialog);progressDialog.dismiss();install(file);catch (Exception e)e.printStackTrace();progressDialog.dismiss();Toast.makeText(SplashActivity.this, 更新失败, Toast.LENGTH_SHORT).show();loadMainUI();2.3 设置自定义对话框与启动activity2.3.1 在手机防盗界面设置一个快捷启动方式,就是在拨打电

16、话的时候,输入一个特定的号 码,然后就会启动手机防盗界面。接收打电话的广播,捕获它。并且在AndroifMainfest文件里面注册这个广播接收者。再加上相应的权限。 public void onReceive(Context context, Intent intent)String outPhoneNumber = this.getResultData();if(outPhoneNumber.equals(1314)/当监听到用户拨打的是1314的时候,就进行下面的操作,你可以把拨打的号码做成参数的形式,让用户可配置Intent i = new Intent(context, LostPr

17、otectedActivity.class);/这个很重要,如果没有这一句,那就会报错,这一句是因为我们是在一个Receiver里面启动一个activity的,但activity的启动,都是放到一个栈里面的,/但Receiver里面没有那个栈,所以我们要在这里启动一个activity,那就必须要指定这行代码啦i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);setResultData(null);/这行代码是把广播的数据设置为null,这样就不会把刚刚那个号码拨打出去啦,只会启动我们的activity2.3.2

18、 自定义对话框需要在styles.xml文件里面写上所需的对话框的样式,之后指定样式dialog=new Dialog(this,R.style.MyDialog);2.4 加密当用户第一次启动手机防盗功能时,输入一次登陆密码,之后每次进入这个功能时,都要输入之前设置的登陆密码。密码是以MD5加密后放到SharedPreferences里。加密的工具类,逻辑是返回加密后的字节数组并把字节转换成16进制的字符串,如果这个字符串只有一个字符就要补0.MessageDigest messageDigest = MessageDigest.getInstance(MD5);/拿到MD5加密的对象byt

19、e bytes = messageDigest.digest(pwd.getBytes();/返回一个加密后的字节数组StringBuffer sb = new StringBuffer();String tmp;for(int i = 0; i bytes.length; i+)tmp = Integer.toHexString(0xff & bytesi);/把字节转换为16进制的字符串if(tmp.length() = 1)/如果这个字符串,只有一个字符,就要补0sb.append(0 + tmp);elsesb.append(tmp);2.5 优化2.5.1 ListView和GridView效率很重要,需要避免在滑动的时候出现了停顿等问题。优化是在adapter里面修改。是在进行view绘制的时候进行判断是否绘制过。2.5.2 Button优化样式,需要把它的Background指定成xml2.6 设置向导写4个xml是向导的界面。2.6.1 切换activity时添加的效果需要通过overridePendingTransition来实现的。2.6.2 定义一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论