




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 Android手机卫士系统主要帮助用户更加方便的使用手机,其中包括显示系统软件和本地软件的详细信息,删除应用程序,结束进程,清理缓存以便手机运行的更流畅;通讯录添加黑名单可以帮助用户免骚扰;程序锁可以保护用户的手机应用,不让他人随便打开私密程序,比如通讯录、短信等;常用号码可以方便用户查询常用的一些电话号码,方便人们的生活;手机杀毒可以保护手机不被病毒骚扰,使手机更加安全;短信备份可以防备短信丢失。Android手机卫士系统主要是面向越来越多的android手机用户。其内容包括通讯卫士可以来电归属地显示,来电黑名单/短信黑名单管理. 短信备份;软件管理,显示软件的详细信息,启动,删除、分享应用程序;任务管理,管理系统任务 显示系统内存信息,杀死,批量杀死进程;系统优化,清理手机内存;隐私卫士,加密程序。 关键字:手机卫士、安全、Android.Abstract Android Mobile Guard system is mainly to help users more convenient to use mobile phones, including system software and local software displays detailed information, remove applications, the end of the process, clearing the cache in order to run more smoothly phones; contacts can help users avoid adding blacklist harassment; program lock can protect the users mobile phone applications, not just open the privacy of others programs, such as contacts, text messages, etc.; frequently used numbers can be used to facilitate user queries some phone numbers to facilitate peoples lives; mobile antivirus can protect your phone is not virus harassment, make the phone more secure; preparedness SMS SMS backup can be lost.Android Phone Guardian system is mainly for more android mobile phone users. Its content includes communication guards can call to show ownership, call blacklist / SMS blacklist management. SMS backup; software management, detailed information display software, start, delete, share applications; task management, task management system memory information display system , kill, kill the process batch; system optimization, cleaning phone memory; Privacy Guard, encryption programs.Keywords: Phone Guardian, safe, android.目 录1.1 前言11.2 课题研究的背景及意义11.3 国内外研究概况与发展趋势11.3.1国外研究情况:11.3.2国内研究情况:21.4 设计的主要工作21.5 论文组织22.开发环境和开发技术32.1工具环境介绍32.1.1 开发环境的选择32.2开发技术32.1.1 JAVA语言简介32.1.2 SQLite简介33.需求分析43.1 设计思想43.2 可行性分析43.2.1 操作可行性43.2.2 技术可行性43.2.3 经济可行性43.3 功能需求53.3.1 基本功能需求54.系统设计64.1 总体结构设计64.1.1 系统设计基础64.1.3 系统模块流程设计65.系统实现95.1设计主界面95.2系统各个模块功能95.2.1 进程管理界面95.2.2程序管理135.2.3病毒查杀165.2.4骚扰拦截185.2.5流量查询195.2.6高级工具206.结束语246.1 总结246.2 心得体会24致谢25参考文献261.绪论1.1 前言目前android是最为普遍的手机操作系统,为了方便为数众多的android手机用户更加安全的使用手机,保护自己的隐私数据而建立android手机卫士系统。其内容包括黑名单的添加与删除,短信的备份与恢复,系统软件和用户软件的的详细信息、运行、卸载与分享,运行进程的结束,程序的加密保护,清理手机内存,常用电话号码的查询1.2 课题研究的背景及意义计算机便携化是未来的发展趋势,而Android作为最受欢迎的手机、平板电脑操作之一,其发展的上升势头是势不可当的。而Android应用选择了Java作为其开发语言,对于Java来说也是一次极好的机会。Android系统就是一个开发式的手机和平板电脑的操作系统,发展势头十分迅猛。虽然Android面世的时间不长,但Android已经对传统的手机平台(如Symbian)构成了强大冲击,Nokia宣布与Microsoft结盟,可能会逐步采用Windows Phone来代替自己的Symbian系统。业界部分人士预测,Android将会成为应用最为广泛的手机操作系统。随着Android手机在人们日常生活的大众化,Android手机的安全也变得越来越重要。经过大学四年理论课程的学习,以及校内校外的实践,极大的丰富了自身的理论基础,并且也具备了一些处理简单问题的能力,但即将踏上社会的我深知这还远远不够,因此我利用了毕业设计的机会,在老师的指导下去完成一个具有挑战性的,其具体应用及社会服务相结合的项目,深知通过对它的开发,将对我的能力有更高层次的突破。1.3 国内外研究概况与发展趋势1.3.1国外研究情况:美国Mcafee公司的WaveSecure应用程序没有任何病毒扫描和防火墙保护,但它却拥有一些重要的功能,比如,远程锁定你的Android设备,存储关键数据,并且能够通过GPS技术跟踪和定位设备,比较实用。Antivirus Free是一款流行的反病毒程序,下载量已经超过50万次,它扫描已经安装到你设备中的应用程序,并检查它们的数据库中是否有恶意程序,从本质上来说,它是一款非常好用的恶意应用检测程序,值得借鉴。1.3.2国内研究情况:国内Android手机卫士主要有360手机卫士,腾讯手机管家等,功能比较齐全,界面友好,各个方面都比较成熟,为我提供了很好的借鉴。随着网络技术的不断发展和人们对安全性,高效性的要求,移动操作系统系统必须与时俱进,不断注入新的功能,以人们日常生活的要求。所以,android手机卫士系统必须保持进步与完善。1.4 设计的主要工作本系统包括进程管理模块、程序管理模块、病毒查杀模块、骚扰拦截模块、流量查询模块、高级功能模块进程管理模块主要实现查看系统中运行的用户进程、系统进程,并统计进程运行总数,显示内存剩余情况,以及查看进程详细信息。程序管理模块主要实现列出手机中所有已安装的应用程序,包括系统程序和用户程序,并可以运行程序、卸载程序、通过蓝牙、QQ空间、新浪等分享程序。病毒查杀模块主要完成病毒的扫描与查杀,包括快速扫描和全盘扫描。骚扰拦截模块主要完成黑名单的添加与删除,对黑名单列表人的来电进行拦截,提示手机已停机,并自动挂断电话。流量查询模块主要完成手机中各个程序的流量使用情况。高级工具主要包括短信的备份,短信的还原,程序锁,常用电话号码的查询。1.5 论文组织论文全文共分为六章:第一章绪论。主要介绍了论文选题的引言、对课题研究的背景及意义进行了分析,同时也对国内外研究状况及发展趋势进行了介绍。 第二章 开发环境和开发技术。这一章介绍了系统、系统的开发模式、开发环境等基础知识。第三章 需求分析。这一章主要介绍了系统设计思想、可行性分析、功能和性能需求。第四章 系统设计。这一章主要介绍了系统的总体结构设计。第五章 系统实现。这一章介绍了系统的所有模块和它的功能。第六章 结束语。对系统实现过程进行了总结。2.开发环境和开发技术2.1工具环境介绍2.1.1 开发环境的选择开发与运行的环境的选择会影响到数据库设计,本系统开发与运行环境如下:开发环境:Windows 7 HomeBasic开发工具:MyEclipse10.0UltraEdit数据库管理:SQLite本系统主要采用JAVA与SQLite相结合的技术。利用MyEclipse10.0软件来设计系统界面,使整个系统更具有吸引力和良好的价值2.2开发技术2.1.1 JAVA语言简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2.1.2 SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。3.需求分析3.1 设计思想第一步确定系统要完成的功能模块;第二步完成系统各个模块的界面开发;第三步完成各个模块的程序设计。本系统包含六个模块:进程管理、程序管理、病毒查杀、骚扰拦截、流量查询、高级工具,各个模块相互独立,模块内部联系紧密,符合高内聚、低耦合的设计思想。3.2 可行性分析可行性分析是系统分析阶段的第二项活动,它的主要目是进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行了调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性分析是对系统进行全面、概要的分析。通过调查分析,本系统设计主要有以下三个可行性:3.2.1 操作可行性本系统操作简单,易于理解,只需通过简单指导,上手较快,运行环境要求低。3.2.2 技术可行性本课题采用java语言进行开发,面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一,程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律.第二,程序中的一切操作都是通过向对象发送消息来实现的,对象接收到消息后,启动有关方法完成相应的操作.一个程序中涉及到的类,可以由程序设计者自己定义,也可以使用现成的类(包括类库中为用户提供的类和他人已构建好的).尽量使用现成的类,是面向对象程序设计范型所倡导的程序设计风格。Android丰富的API可以使系统完成更加方便。3.2.3 经济可行性本课题所使用的软件都为免费公开发行版,不需要购买。现在,Android手机的价格已经十分低廉,使用非常普遍,为本次开发提供了设备支持,几乎所有的Android手机都可以高效的运行使用Android手机卫士系统 。3.3 功能需求按照系统开发业务分析要求和原则,在与系统管理人员的充分沟通,整理出Android手机卫士系统所需求的基本功能和用户界面的一些需求,这些需求将作为系统分析和逻辑设计的依据。3.3.1 基本功能需求通过系统的分析,可得出该系统的基本功能需求如下:进程管理:列出所有进程,显示内存使用情况,可以批量杀死选中进程程序管理:列出手机上安装的用户程序和系统程序,可以运行、卸载相关程序病毒查杀:可以快速扫描和全盘扫描手机内存和SD卡,查杀病毒骚扰拦截:可以添加来电黑名单,拦截黑名单来电流量查询:可以查看各个程序的流量使用情况高级工具:包含短信的备份、还原,程序锁,常用号码查询3.3.2 用户界面需求系统界面要符合大多数人的使用习惯,界面美观、按钮得体,使用起来要方便。图4-1系统组织结构图4.系统设计4.1 总体结构设计4.1.1 系统设计基础系统总体设计原则是需要充分考虑系统框架的合理构建理。其组织结构图如4-1所示。4.1.2 模块设计本系统是一个典型的Android手机卫士系统,主要目标是让使用它的用户能很好地管理Android手机,方便用户的使用,如任务管理功能、程序管理功能、病毒查杀功能、骚扰拦截功能,流量查询以及高级工具功能4.1.3 系统模块流程设计在具体模块的设计过程中,将系统模块以按钮的形式展现出来。任务管理:清理手机的运行进程,包括用户进程和系统进程,显示进程的详细信息和进程的详细信息,如同4-2所示。图4-2任务管理流程图图4-3程序管理流程图程序管理:列出手机中安装的进程包括系统程序和用户程序,对程序进行管理,例如卸载程序,运行程序,分享程序需,如图4-3所示。病毒查杀:扫描手机文件,对比文件MD5值是否与病毒MD5值匹配,查杀病毒,如图4-4所示。图4-4病毒查杀流程图骚扰拦截:添加删除黑名单,并更新黑名单数据库,对黑名单号码来电拦截,如图4-5所示。图4-5骚扰拦截流程图流量查询:查询各个程序锁产生的流量,如图4-6所示。图4-6流量查询流程图图4-6程序锁流程图高级工具:备份所有短信、从备份恢复短信,如图6-7所示;给程序加锁,如图4-6所示;设置密码后只有通过密码验证才能进入相关程序,提供常用公共服务电话号码的查询。图4-7短信备份恢复流程图图5-1 系统窗体5.系统实现5.1设计主界面民情档案管理系统主页面如图5-1所示:5.2系统各个模块功能5.2.1 进程管理界面如图5-2所示图5-2 任务管理界面实现添加功能的部分代码如下:lv_task_manager.setOnItemClickListener(new OnItemClickListener() public void onItemClick(AdapterView parent, View view,int position, long id) Object obj = lv_task_manager.getItemAtPosition(position);if (obj instanceof TaskInfo) TaskInfo taskinfo = (TaskInfo) obj;String packname = taskinfo.getPackname();CheckBox cb = (CheckBox) view.findViewById(R.id.cb_task_checked);if (cn.itcast.mobilesafe.equals(packname)| system.equals(packname)| cess.media.equals(packname) cb.setVisibility(View.INVISIBLE);return;if (taskinfo.isIschecked() taskinfo.setIschecked(false);/ 更改checkbox的状态cb.setChecked(false); else taskinfo.setIschecked(true);cb.setChecked(true););lv_task_manager.setOnItemLongClickListener(new OnItemLongClickListener() public boolean onItemLongClick(AdapterView parent,View view, int position, long id) Intent intent = new Intent(TaskManagerActivity.this,AppDetailActivity.class);MyApplication myapp = (MyApplication) getApplication();Object obj = lv_task_manager.getItemAtPosition(position);if (obj instanceof TaskInfo) TaskInfo taskinfo = (TaskInfo) obj;myapp.taskinfo = taskinfo;startActivity(intent);return false;);fillData();/* * 填充listview的数据 */private void fillData() setTitleData();ll_task_manager_loading.setVisibility(View.VISIBLE);new Thread() Overridepublic void run() taskInfoprovider = new TaskInfoProvider(TaskManagerActivity.this);listtaskinfos = taskInfoprovider.getAllTasks(runingappinfos);/ 通知界面更新数据totalused = 0; / 所有程序占用的内存信息 kbfor (TaskInfo taskinfo : listtaskinfos) totalused += taskinfo.getMemorysize();handler.sendEmptyMessage(0);.start();/* * 设置title的数据 */private void setTitleData() tv_task_count.setText(进程数目: + getProcessCount();tv_avail_memory.setText(剩余内存+ TextFormater.getDataSize(getAvailMemoryInfo();/* * 获取当前正在运行的进程的数目 * * return */private int getProcessCount() runingappinfos = am.getRunningAppProcesses();return runingappinfos.size();private long getAvailMemoryInfo() MemoryInfo outInfo = new ActivityManager.MemoryInfo();am.getMemoryInfo(outInfo);return outInfo.availMem;public void killTask(View view) int total = 0;int memorysize = 0;for (TaskInfo taskinfo : usertaskinfos) if (taskinfo.isIschecked() memorysize += taskinfo.getMemorysize();am.killBackgroundProcesses(taskinfo.getPackname();/ listtaskinfos.remove(taskinfo);total+;for (TaskInfo taskinfo : systemtaskinfos) if (taskinfo.isIschecked() memorysize += taskinfo.getMemorysize();am.killBackgroundProcesses(taskinfo.getPackname();/ listtaskinfos.remove(taskinfo);total+;fillData();public void appSetting(View view) Intent intent = new Intent(this,TaskSettingActivity.class);startActivityForResult(intent, 0);private class TaskInfoAdapter extends BaseAdapter public TaskInfoAdapter() usertaskinfos = new ArrayList();systemtaskinfos = new ArrayList();for (TaskInfo taskinfo : listtaskinfos) if (taskinfo.isSystemapp() systemtaskinfos.add(taskinfo); else usertaskinfos.add(taskinfo);5.2.2程序管理第一步:设计界面如图5-3所示。图5-3 程序管理界面第二步:完成查询功能:部分代码如下:/* * * param flag * true 代表的是更新所有的程序 false 代表的是更新用户的程序 */private void initUI(final boolean flag) ll_loading.setVisibility(View.VISIBLE);new Thread() Overridepublic void run() isloading = true;if (flag) provider = new AppInfoProvider(AppManagerActivity.this);appinfos = provider.getAllApps();/Message msg = new Message();msg.what = GET_ALL_APP_FINISH;handler.sendMessage(msg);else provider = new AppInfoProvider(AppManagerActivity.this);appinfos = provider.getAllApps();userAppinfos = getUserApps(appinfos);Message msg = new Message();msg.what = GET_USER_APP_FINISH;handler.sendMessage(msg);.start();switch (v.getId() case R.id.tv_app_manager_title:tv = (TextView) v;titletext = tv.getText().toString();if (所有程序.equals(titletext) / 切换到用户程序tv.setText(用户程序);/ 更新listview的列表userAppinfos = getUserApps(appinfos);adapter.setAppInfos(userAppinfos);adapter.notifyDataSetChanged(); else / 切换到所有程序tv.setText(所有程序);adapter.setAppInfos(appinfos);adapter.notifyDataSetChanged();break;case R.id.ll_share:Log.i(TAG, 分享 + packname);Intent shareIntent = new Intent();shareIntent.setAction(Intent.ACTION_SEND);/ shareIntent.putExtra(ent.extra.SUBJECT, 分享);shareIntent.setType(text/plain);/ 需要指定意图的数据类型shareIntent.putExtra(Intent.EXTRA_SUBJECT, 分享);shareIntent.putExtra(Intent.EXTRA_TEXT,推荐你使用一个程序 + item.getAppname();shareIntent = Intent.createChooser(shareIntent, 分享);startActivity(shareIntent);break;case R.id.ll_uninstall:/ 需求不能卸载系统的应用程序if (item.isSystemApp() Toast.makeText(this, 系统应用不能被删除, 0).show(); else Log.i(TAG, 卸载 + packname);String uristr = package: + packname;Uri uri = Uri.parse(uristr);Intent deleteIntent = new Intent();deleteIntent.setAction(Intent.ACTION_DELETE);deleteIntent.setData(uri);startActivityForResult(deleteIntent, 0);break;case R.id.ll_start:Log.i(TAG, 运行 + packname);/ getPackageManager().queryIntentActivities(intent, flags);try PackageInfo info = getPackageManager().getPackageInfo(packname,PackageManager.GET_UNINSTALLED_PACKAGES| PackageManager.GET_ACTIVITIES);ActivityInfo activityinfos = info.activities;if (activityinfos.length 0) ActivityInfo startActivity = activityinfos0;Intent intent = new Intent();intent.setClassName(packname, startA);startActivity(intent); else Toast.makeText(this, 当前应用程序无法启动, 0).show(); catch (Exception e) Toast.makeText(this, 应用程序无法启动, 0).show();e.printStackTrace();5.2.3病毒查杀第一步:设计病毒查杀如图5-4所示。图5-4 病毒查杀界面第二步:部分代码如下:private void listPackages() ArrayList apps = getInstalledApps(false); final int max = apps.size(); for (int i = 0; i max; i+) if(flag = false) item = new HashMap(); item.put(appname, apps.get(i).appname); item.put(icon, apps.get(i).icon); Message message = new Message(); message.obj = item; progress = i*100/(max-1); try Thread.sleep(50); catch (InterruptedException e) e.printStackTrace(); mHandler.sendMessage(message); else break; 图5-5 骚扰拦截界面5.2.4骚扰拦截第一步:界面设计,如图5-5所示。第二步:部分代码public void onCallStateChanged(int state, String incomingNumber) super.onCallStateChanged(state, incomingNumber);switch (state) case TelephonyManager.CALL_STATE_IDLE: / 处于静止状态: 没有呼叫endRingTime = System.currentTimeMillis();long calltime = endRingTime-firstRingTime;Log.i(TAG,calltime =+calltime);if(firstRingTimeendRingTime & calltime0)Log.i(TAG,响一声的电话);endRingTime = 0;firstRingTime = 0;/ 弹出来notification 通知用户这是一个骚扰电话showNotification(incomingNumber);if(view!=null)windowmanager.removeView(view);view = null;/ 再获取一次系统的时间 break;case TelephonyManager.CALL_STATE_RINGING: / 零响状态firstRingTime = System.currentTimeMillis();Log.i(TAG,来电号码为+ incomingNumber);/ 判断incomingnumber是否在黑名单中if(dao.find(incomingNumber)/挂断电话endCall();/deleteCallLog(incomingNumber);/注册一个内容观察者 观察call_log的uri的信息 getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, new MyObserver(new Handler(),incomingNumber);break;case TelephonyManager.CALL_STATE_OFFHOOK: /接通电话状态if(view!=null)windowmanager.removeView(view);view = null;break;5.2.5流量查询第一步:界面设计如图5-6所示。图5-6 流量查询界面第二步:部分代码如下public TrafficAdapter() super(); PackageManager pm = getPackageManager(); Intent intent = new Intent(); intent.setAction(ent.action.MAIN); intent.addCategory(ent.category.LAUNCHER); resovleInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);5.2.6高级工具第一步:界面设计如图5-7所示。 图5-7 高级工具界面第二步:部分代码如下new Thread() Overridepublic void run() / 开启看门狗while (flag) try / 判断屏幕是否是锁屏状态if(keyguardManager.inKeyguardRestrictedInputMode()/清空临时的集合tempstopapps.clear();/lockapps 信息为最新的/lockapps = dao.getAllApps();/ 得到当前正在运行程序的包名/ 返回系统里面的任务栈的信息 , taskinfos的集合里面只有一个元素/ 内容就是当前正在运行的进程对应的任务栈List taskinfos = am.getRunningTasks(1);RunningTaskInfo currenttask = taskinfos.get(0);/ 获取当前用户可见的activity 所在的程序的包名String packname = currenttask.topActivity.getPackageName();Log.i(TAG, 当前运行 + packname);if (lockapps.contains(packname) / todo : 如果当前的应用程序 需要临时的被终止保护if (tempstopapps.contains(packname) / return;sleep(1000);continue;Log.i(TAG, 需要锁定 + packname);/ todo 弹出来一个锁定的界面 让用户输入密码lockappintent.putExtra(packname, packname);startActivity(lockappintent); else / todo 放行执行sleep(1000); catch (Exception e) e.printStackTrace();.start();/* * 还原短信信息 , * param path 短信备份文件对应的路径 */public void restoreSms(String path,ProgressDialog pd) throws ExceptionFile file = new File (path);ContentValues values = null;FileInputStream fis = new FileInputStream(file);XmlPullParser parser = Xml.newPullParser();parser.setInput(fis, utf-8);int type = parser.getEventType();int currentcount=0;while ( type!=XmlPullParser.END_DOCUMENT)switch (type) case XmlPullParser.START_TAG:if(count.equals(parser.getName() String count =parser.nextText(); pd.setMax(Integer.parseInt(count);if(sms.eq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Pevonedistat-Standard-生命科学试剂-MCE
- 2025年供用水合同解除通知协议(GF-1999-0501)
- Papiliocin-生命科学试剂-MCE
- 2025内蒙古师范大学实验幼儿园人员招聘3人考前自测高频考点模拟试题及答案详解(全优)
- 2025湖北咸宁市通城县城市发展建设投资(集团)有限公司招聘模拟试卷含答案详解
- 2025年考研数学竞赛真题及答案
- 深度教学测试题及答案
- 模拟礼仪讲师考试题及答案
- 2025年今春季考试题目及答案
- 港务集团面试真题及答案
- 安吉远洲田园康养疗愈小镇规划设计方案
- 易能EDS800变频器说明书
- DB50-T 1483-2023水溶性蚕丝丝素蛋白粉生产技术规程
- 发育生物学实验教案
- 【幼儿自主游戏中科学探究活动实践研究文献综述1900字】
- 肝脓肿的诊断和治疗
- YY 9706.102-2021医用电气设备第1-2部分:基本安全和基本性能的通用要求并列标准:电磁兼容要求和试验
- GB 7691-2003涂装作业安全规程安全管理通则
- 跌倒坠床原因分析预防措施
- 湖南人民出版社乘槎笔记(斌椿)
- Q∕SY 1452.1-2012 石油装备产品包装规范 第1部分:钻机和修井机
评论
0/150
提交评论