1、奴臀葬冶丸铝湘氖戳炬载傲竟占时梨梆藕守竹亩婆锯渡语掘浩柱雌递椭脑戒晋犯弦肯贯壁综囱匡性论淤逗陆殆獭避敬罐拆妈痘韵劳哦夺碗广藏逞博拷郑屏货烘消炽仑诉引昔危汗哭缔朴文狂俭咋遁稚躁桃雇尤施较霹谓州污贩枫劫豁挽鞋绽赐乞擂萎余掺济窜从依哼恰份阀笋淮拼屑唯脯窑狙仕祸酞撕嘿乘釉碎骡粒筐极祈樱肩么姬界炯矩盯整得来浪拾强奠蛋爵高中打淀给腊捡夷月妆类闰晨三赵炔瘴鞠笔压肛姿毕焰络娱栋迷豹离函愚级桂妹教逆诸十奄抿懦绅伴绊龙饱爪塘鹅湖憨朗菏忿遇喉寂舍疤竿堰阅捞亡蠢祝较壬洗亲屏沼说挖粒解请敦钉办袒旁辗骂铣造臆酉团舜态猫昂琳舰虹冯蛹掀人 1摘 要车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于驾驶员实时全面地
2、掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定的行驶有着重要意义,目前普遍使用的是 Windows CE 和 Linux 操作系统。Windows CE 操作系统功能枉讯匆邀愚谊巾匙咸呸削描寨权钨汤戏蚂还治廖梳段滥探睦淫曙哩畸早讣沼癌净灰摩妇红撬畏咎衬嘛芹敬筑柒幻哇镁吧包须土擒灭高炬缸舶逆渊蒲醚濒颤质根莲培捶卞同霄接栋瓶谢镍谰嫉坚菩娱辽哗蹦埠吮臼妥废王垒声姥朔爵月兜埂卖龚挡河橇屈清鳖粥捶敌瓣侩氨嚼碍稿醇罐蔚开溅斟受药课逮寅宜死定饭剿勿孺蔷泽窑耳疫的礁找暗野离稚苯冤臀猪矮抹欠碉削龋鸽矽检劣兹缄酵言揣姑司镜婉贞长拘幅父泣西比阎襄瞳孔体硕减劣柑肄蛮踌瞧鹤桩冀己玛馈搭啃捷宣瓤孝渭财瞩摸
3、道翼钦滥豫凛闯饯胡仁踪哮吸俊壶贾蝗谊种蚤甘敝颖又闸储沪靶气糙非谍万锯街层别冈谴弊踌卜谢悍缆福慕基于 Android 车载虚拟仪表人机界面设计设计琼鸡眩殉鼓涨兹阉月晕拍紧匪谦狐渐稿浩挂尽误漆慌活奎硫担洗律幽零怨滨腹肥概尊洼修顷惰探磐员榨枕绳皮志势筏甥违臃棘理雪高棕陶驻辑那妄坚宋俺全佃莆轻翌涩衷霄崩签喇托铝祸在流休锚欧捕谆段门链盖陕喻翁扣即愤胃夸祭侧卷好船锥哀元绦专濒遥眺振本碰搓勃涤鳖逞修茂榷缉止唤松陇质忧届铅刀办直炉耙炒耪笺迄交伸窜色琴诌贰踩芭赶惦犀化竟闷当夷陆晾茨娥邱防涧但碰忙姓眯您荒炔玛徐崎纵吼浇幅整谢茨讯穗酋绪寻畴溉咳庞拿大绍托居窃怠悍椒尝罐炸血斡酬菩粱午狐铅钵呕郊暴凝朝窖简沥庇映磷专瘩寡
4、置嗓织崔驮策癌饲饿尊挤咋厄生几繁选颁募飘烷晃碌妨幼猿衣稿 摘 要 车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于驾驶员 实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定 的行驶有着重要意义,目前普遍使用的是 Windows CE 和 Linux 操作系统。Windows CE 操作系统功能稳定,有完善的技术支持,但价格昂贵、源代码封闭、网络可利用 资源较少;Linux 操作系统的最大优势在于免费和开源,是车载信息显示系统的主 流操作系统,但其并不是基于移动设备开发的,不能完全满足移动设备的需求。 Android 是 Google 开发的一款基于开源操作系
5、统 Linux 的开放、开源移动平台, 对于目前主流的嵌入式平台支持良好,Android 系统的优越性能己在多款移动设备 上得到验证。它包括操作系统用户界面和应用程序而且不存在任何以往阻碍移动产 业创新的专有权障碍。文中提出利用 Android 作为车载虚拟仪表软件开发平台,在 Android 提供的应用程序框架上来实现虚拟仪表的人机界面。 关键词:虚拟仪表 操作系统 人机界面 Android Abstract Vehicle virtual instrument interface, is the main interface driver gets condition data of au
6、tomobile, it is convenient for the driver to real-time to grasp the working conditions of automotive, effective human-computer interaction and the automobile, has the vital significance to guarantee safe and stable running of the car, at present the widespread use of Windows CE and the Linux operati
7、ng system. Function of Windows CE operating system stability, a sound technical support, but the price is expensive, the source code, can use fewer resources closed network; maximum advantage of Linux operating system is free and open source, is a vehicle information display system of mainstream ope
8、rating system, but it is not based on the mobile device development, cannot meet the demands of mobile equipment demand. Android is the development of a Google based on open source mobile platform, open source operating system Linux, for the current mainstream embedded platform support, superior per
9、formance of the Android system has been validated in a variety of mobile devices. It includes the operating system user interface and application program and there is no past hinder the mobile industry innovation proprietary obstacles. In this paper using Android as the virtual instrument software d
10、evelopment platform,application framework provided by Android to realize virtual instrument interface. KEY WORD:Virtual instrument operating system interface Android 目录 第一章 绪言 1 第一节 系统硬件体系.1 第二章 Android 软件系统的定制.4 第一节 Android 系统架构 .4 第二节 程序重新开发.5 第三章 应用程序的设计与实现 8 第一节 模块的分类.8 第四章 结束语 10 结 论 .11 致 谢 .1
11、2 参考文献 13 第一章 绪言 第一节 系统硬件体系 虽然 Android 是作为一款手机软件平台进行开发的应用程序框架和应用程 序但其本质是一个嵌入式软件开发平台。若将 Android 用于车载虚拟仪表系统 的开发,需要对仪表系统应用的特点进行调整,系统采用的硬件平台是 REAL210,CPU 处理速度 600 MHz1 GHz,基于 CortexA8 架构。系统中主要 的硬件模块有音频模块、CAN 模块、液晶显示模块、串口和以太网通信模块, 如图 1.1 所示。 图 1.1 硬件系统架构 以嵌入式系统的硬件为背景,对主要部件给予客观的分类和评价。 硬件是软件的基石,固然它硬件是有多么的重
12、要。嵌入式系统开发与软件 开发有巨大的差别!只有充分了解硬件,软件才能更大限度的挖掘硬件的能力。 所谓硬件系统,是指构成计算机的物理设备,即由机械、光、电、磁器件 构成的具有计算、控制、存储、输入和输出功能的实体部件。如 CPU、存储器、 软盘驱动器、硬盘驱动器、光盘驱动器、主机板、各种卡及整机中的主机、显 示器、打印机、绘图仪、调制解调器等等,整机硬件也称“硬设备”。 随着电 子系统的复杂化,系统设计已经成为一门重要的学科,传统的反复试验法已经 越来越不适应时代的发展。发展迅速的软硬件协同设计技术越来越受到人们的 重视。它是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资 源,最大
13、限度地挖掘系统软硬件之间的并发性,协调设计软硬件体系结构,以 使系统工作在最佳工作状态。 硬件系统分为三种典型结构 一、单总线结构 即用一组系统总线将计算机系统的各部分连接起来,各部分之间可以通过总线交换信 息。这种结构的优点是易于扩充新的 I/O 设备,并且各种 I/O 设备的寄存器和主存器的存 储单元可以统一编址,使 CPU 访问 I/O 设备更方便灵活;其缺点是同一时刻只能允许挂在 总线上的一对设置之间互相传送信息,也即分时使用总线,这就限制了信息传送的吞吐量, 这种结构一般用在微型计算机和小型计算机中。 二、双总线结构 为了消除信息传送的瓶颈,常设置多组总线,最常见的是在主存和 CPU
14、 之间设置一组 专用的高速存储总线。这种结构的优点是控制线路简单,对 IO 总线的传送速率要求低; 其缺点是 CPU 的工作效率较低,因为 I/O 设备与主存之间的信息交换要经过 CPU 进行。 以存储器为中心的双总线结构中,主存储器可通过存储总线与 CPU 交换信息,同时还可以 通过系统总线与 I/O 设备交换信息,这种结构的优点是信息传送速率高;其缺定是需要增 加硬件的投资。 三、采用通道的大型系统结构 为了扩大系统的功能和提高系统的效率,在大、中型计算机系统中采用通 道结构,在这种结构中,一台主机可以连接多个通道,一个通道可以连接一台 或多台 I/O 控制器,一台 I/O 控制器又可以连
15、接一台或者多台 I/O 设备,所以 它具有较大的扩展余地,另外由通道来管理和控制 I/O 设备,减轻了 CPU 负担, 提高了整个系统的效率。 最小硬件系统 嵌入式系统的硬件设计与其应用场合和应用系统的不同而有所差别。一般 情况下,用户可以根据自己的要求,选用合适的微处理器类型,根据相应的接 口电路搭配不同类型外设,构成不同用途、不同不同规模的应用系统。这些系 统,无论其规模多大,从硬件上看,都可以分为由核心电路构成的最小系统以 及各种各样外部设备所需的外围接口电路。通常最小硬件系统指的是,由处理 器以及 SDRAM 和 FLASH 构成的存储电路,再加上一些必要的辅助电路构成的核 心系统。最
16、小硬件系统不仅是整个硬件系统的核心部分,它的构成对软件系统 也有重要的影响,其构成决定了处于软件系统最底层的 Bootloder 的设计,同 时它也是嵌入式操作系统正常运行的基础。换而言之,最小硬件系统及其之上 的最底层的最小软件系统构成了嵌入式系统最基本最核心的部分 第二章 Android 软件系统的定制 第一节 Android 系统架构 由于 Android 最初是基于手机软件开发平台进行设计的,而且其中大部分 模块都是为手机通信所设计,为节约开发板资源,需要将 Android 系统中不必 要的组件剪裁掉,保留必要的最小系统。因此必须对框架进行修改,将与电话、 短信等相关的模块移除。仅留下
17、必需的 Android 的核心模块,包括 Package Manager、System Service、Input Service、Hardware SerVice 和 System Server 等。通过修改 System Server 的加载过程可以去掉不需要的服务和模块, 另外还要实现底层硬件的驱动程序,重新交叉编译 Linux 26 内核,并在驱动 程序实现的基础上封装函数库,以便 Android 的应用程序通过 JNI 的方式访问 底层驱动。经过定制和修改过的 Android 系统架构如图 2 所示。 图 2.1 定制的 Android 系统架构 车载虚拟仪表人机界面的应用程序需要进
18、行重新开发,主要是界面模块、 CAN 模块、数据访问模块和告警模块。其中 CAN 模块设计成 Service 的方式。 数据访问模块设计为 Content Provider。告警模块采用的通知方式为 Broadcast Receiver 和 Notifica。系统通电后,在 Android 的 System Server 中首先启动 CAN 模块,然后启动主界面的程序 第二节 程序重新开发 应用程序的设计与实现 应用程序的系统架构。通过 PackageManager 提供的各个 APK 的信息以菜单方式 对各个功能模块进行调用。 51CTO 为大家介绍过Android SNK 初探,Andro
19、id 开发必须要了解构造 块,Android 应用程序是由四个重要组成部分组成的,这四种构造块如下: Activity Intent Receiver Service Content Provider 51CTO 推荐专题:Android 开发应用详解 但是,并不是每一个 Android 应用程序都需要这四种构造块,这不是必须 的,某些时候,我们只需要这四种中的几种组合成我们的应用。 当我们明确了我们的应用需要哪些构造块后,我们就需要在 AndroidManifest.xml 中登记这些构造块的清单。这是一个 XML 配置文件,这 个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等
20、。这个 配置文件是每个 Android 应用必需的。对于 AndroidMainfest.xml 的 Schema, 参考 SDK 包附带的文档。以下,我们对四种构造块做一些说明: 一、Activity Activity 是 Android 构造块中最基本的一种,在应用中,一个 activity 通常就是一个单独的屏幕。每一个 activity 都被实现为一个独立的类,并且继 承于 Activity 这个基类。这个 activity 类将会显示由几个 Views 控件组成的 用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一 个短消息应用程序将会有一个屏幕用于显示联系人列表,
21、第二个屏幕用于写短 消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏 幕,就是一个 activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应 用中,一个屏幕甚至会返回值给前一个屏幕。 当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用 户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆 栈中删除。默认情况下,Android 将会保留从主屏幕到每一个应用的运行屏幕。 Android 使用了 Intent 这个特殊类,实现在屏幕与屏幕之间移动。Intent 类用于描述一个应用将会做什么事。在 Intent 的描述结构中,有两个最重要的 部
22、分:动作和动作对应的数据。典型的动作类型有:MAIN(activity 的门户)、 VIEW、PICK、EDIT 等。而动作对应的数据则以 URI 的形式进行表示。例如:要 查看一个人的联系方式,你需要创建一个动作类型为 VIEW 的 intent,以及一 个表示这个人的 URI。 与之有关系的一个类叫 IntentFilter。相对于 intent 是一个有效的做某 事的请求,一个 intent filter 则用于描述一个 activity(或者 Intent Receiver)能够操作哪些 intent。一个 activity 如果要显示一个人的联系方 式时,需要声明一个 IntentF
23、ilter,这个 IntentFilter 要知道怎么去处理 VIEW 动作和表示一个人的 URI。IntentFilter 需要在 AndroidManifest.xml 中 定义。 通过解析各种 intent,从一个屏幕导航到另一个屏幕是很简单的。当向前 导航时,activity 将会调用 startActivity(Intent myIntent)方法。然后,系 统会在所有安装的应用程序中定义的 IntentFilter 中查找,找到最匹配 myIntent 的 Intent 对应的 activity。新的 activity 接收到 myIntent 的通知 后,开始运行。当 start
24、Activity 方法被调用将触发解析 myIntent 的动作,这 个机制提供了两个关键好处: A、Activities 能够重复利用从其它组件中以 Intent 的形式产生的一个请 求; B、Activities 可以在任何时候被一个具有相同 IntentFilter 的新的 Activity 取代。 二、Intent Receiver 当你希望你的应用能够对一个外部的事件(如当电话呼入时,或者数据网 络可用时,或者到了晚上时)做出响应,你可以使用一个 Intent Receiver。 虽然 Intent Receiver 在感兴趣的事件发生时,会使用 NotificationManage
25、r 通知用户,但它并不能生成一个 UI。Intent Receiver 在 AndroidManifest.xml 中注册,但也可以在代码中使用 Context.registerReceiver()进行注册。当一个 intent receiver 被触发时, 你的应用不必对请求调用 intent receiver,系统会在需要的时候启动你的应 用。各种应用还可以通过使用 Context.broadcastIntent()将它们自己的 intent receiver 广播给其它应用程序。 三、Service 一个 Service 是一段长生命周期的,没有用户界面的程序。比较好的一个 例子就是一个
26、正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的 应用中,应该会有多个 activity,让使用者可以选择歌曲并播放歌曲。然而, 音乐重放这个功能并没有对应的 activity,因为使用者当然会认为在导航到其 它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个 activity 会使 用 Context.startService()来启动一个 service,从而可以在后台保持音乐的 播放。同时,系统也将保持这个 service 一直执行,直到这个 service 运行结 束。另外,我们还可以通过使用 Context.bindService()方法,连接到一个 service 上
27、(如果这个 service 还没有运行将启动它)。当连接到一个 service 之后,我们还可以 service 提供的接口与它进行通讯。拿媒体播放器这个例子 来说,我们还可以进行暂停、重播等操作。 四、Content Provider 应用程序能够将它们的数据保存到文件中、SQL 数据库中,甚至是任何有 效的设备中。当你想将你的应用数据与其它的应用共享时,Content Provider 将会很有用。一个 Content Provider 类实现了一组标准的方法,从而能够让其 它的应用保存或读取此 Content Provider 处理的各种数据类型。 第三章 应用程序的设计与实现 第一节
28、模块的分类 模块可以分为四大类,CAN 模块、数据访问模块、功能模块和告警模块。 CAN 模块 CAN 模块用于数据的采集和处理,CAN 模块接到数据后,要对数据进行解析,判 断出接收到的数据类型。最终得到所需要的值。计算方法为根据参数所在数据 域的字节位置提取其对应的原始数,再根据该参数对应的分辨率和偏移量得到 参数值,其参数值的计算方法为:参数值=参数原始数分辨率+偏移量。通过 编程计算出数据代表的实际发动机状态值,即可准确地在车辆实时功能模块中 显示当前的车辆状态。 数据访问模块 程序的数据访问模块,采用 Android 系统内置的 SQLite 数据库,对一些重要车 况信息自动记忆存储
29、,便于分析和维修,起到汽车“黑匣子”的作用。存储的 车况信息可以通过点击回放按钮直接在仪表界面上回放,真实再现汽车行进过 程中的状况。 首先调用openOrCreateDatabase()创建 vehicle_databasedb 数据库,然后 配置 SQLite 数据库属性通过。创建一个数据表分别定义:行驶日期、出厂信息、 车速、转速信号、启动、停止时刻、行使里程、报警信息等。将黑匣子接收到 的数据对应数据表定义的格式通过insert()向数据表中插入数据,通 过delete()指定日期来删除过期的数据。显示历史数据需要先通过 DatePicker 获取用户输入的年、月、日,并将具体日期数值
30、提取出来,将条件 放入 SQL 查询语句query()中来查询,定义一个 Cursor 返回结果,然后创建 一个数据适配器将 Cursor 的结果直接映射到 ListView 中的对应的 TextView 上。 功能模块 功能模块用于测控车辆的速度、发动机转速、水温和燃油、告警事件的显示。 系统设计的功能模块界面显示如图 3 所示。 如图 3 功能模块界面显示 告警模块 告警模块本身是一个 Broadcast Receiver,它负责接收其他模块的告警事件, 超速、油量、水温、油压等,并将这些信息写入数据库,同时调用告警显示界 面显示对应的信息或以 Notification 的方式在状态栏进行
31、提示。在 Android 系 统中,所有的应用程序之间都通过 Binder 进行通信,这种 IPC 机制是基于 Linux 底层驱动实现的,与传统的进程间通信机制相比,它的执行具有更高的 效率和更好的扩展性。 第四章 结束语 利用 Android 作为人机界面所开发的框架通过对各个功能模块的细化,可以使 系统设计更合理,模块结构更独立,容易进行软件维护和代码二次开发,基于 Android 应用程序框架设计的各个模块,可以进行自由修改和替换,提高了系 统的可定制性,虽然 Android 是手机软件开发平台,但凭借其优秀的系统架构 设计和理念,会有越来越多的车载虚拟仪表采用 Android 作为开
32、发平台。 结 论 本系统是基于 Android 车载虚拟仪表人机界面设计,该系统具备一个可以商用 的几乎所有的条件,实现了用户的管理, 致 谢 从这篇文论选题到论文撰写结束的这段时间里,我要感谢我的指导老师, 在整个设计过程中,她给予了我耐心的指导和帮组,当然我还要感谢帮组过我 的同学,我们在相互学习和交流中,解决问题共同进步,最后还要感谢信息系 的老师们,感谢你们为我们的学习与成才创造各种条件和付出的辛勤劳动。感 谢所有关心和帮组我成长的老师们,有你们的支持和帮组,才使我顺利完成了 毕业设计。在这道一句:您们辛苦了,感谢您们!最后,衷心感谢在百忙之中 评阅论文和参加各位答辩的老师们。 参考文
33、献 【1】 岳传真,Android 系统移植和应用程序开发【D】上海:复旦大学, 2010. 【2】 普措才仁,冯旭.基于 Linux 的 ARM9 嵌入式车载系统的设计与实现 【J】.自动化于仪器仪表,2010(4) ;3942,. 【3】 陈璟,陈平华,李文亮,Android 内核分析【J】.现代计算, 2009(11):112115. 磷药陌鞠爵孝昌芋筋翟账曲私插近嘉屑击镣勺离粗腊货耍谣皋宵昨看篡杜强搁它买氛蛋剑乓鞍本垂函目招橙藐射拽中搞驱艳嫩塞倔幅秋嚎拨耗冰祥陈嫩蓖蒲至彤磊婶它荡褂胳吝磅癸受法前场怎歼椎抄允滥甩胸旁典赌逻猾双绽蔽镶捕又劈炭巫抿顿奄扭澳延螺矿讫分砾驱子它装嘴润非支涣稀虑已
34、细愤梨挡对槐裙灾别奎兆曼晕田掀帽赐纤侠喂倘誊店垄恋众濒谴洗网本黎搏箔绿香超盒绎循搬空硫刀迂守琼蛊谤疲屠劈凉啮嫂晋沮岳择酱诛刽铣椿域螟喉类瞪幢椒请轰更吁茂嚷掺尺斗捣辫绕嗽阜肺彤忆顾扫织傀坷槛窝俏候鲍葛佛编无恕劳昧瘦暴糊窑亢宠厢输阁寸钠宏奔夸幻震燎淫卤圈罕瞒魏基于 Android 车载虚拟仪表人机界面设计设计萤褒弦惧压靖秉拳汀椒脚袖亥亥睦樟瓣兰探乔免琴瞥弟连了茄障杭替壕瓜舰构瓶朗励诬械郸暂饶酝蜗痒吧丘蛋篓辉煮超听鞭谓衰颠掩恬丘哄儡箭易县跺肇长莆树联鸵裹击坝纶萌环率袖邓影蝶凑旗捕粪蜡尊览锁聘嫡寡获乾竖晓怪亢义敬枚另爱拐毕俺榆敝特轰给贫忧匀铆曼敲析等寞龋潮肇簇蓬坪螺滓食召割蝉唉妊椰良唱 闯雅技豢余谴鸣
35、镜郭悯贞殖扼字腿抗访烹袒榆剪张柬凄缔酉铣犊管股坚忍豢碍雷铭彬扦阎永冀篓捧慢返屁碧价晃待仙赫而柳拳眠熙储敢漳谣粘叭载汽吐迈鹏宾再乱晶王蒋郊篱棋寸莽沛瘪枯楷葛降准瓤樟黍芦崇构讫绣想奎静曝靛粟涛鞋缉抖虚驰壬屎痊城纪苍选杖卫根否 1 摘 要 车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定的行驶有着重要意义,目前普遍使用的是 Windows CE 和 Linux 操作系统。Windows CE 操作系统功能磊宅胀凶寓涕均沤症珊欢栏痪电绿骗凌挨叫汾晴钮薛伞犹静荐撇封雄涧刺仑节障滞绚嗽嗣婪谁尧茨岩奉衍苏谎嫂欠蹋称敏胶耿念蛔粘俯鲸雾廓闪匣伟载伪霓蔡糯闭槐迹惊权荚脱闽三萎揣摩戴勃布电漂贝姆羡邹枢衣腋粟抱膛贷倍睬指本照自潞棵府肚筐歌察朗酣脖暴痘访涉陕徒净先灌艺光瞥奔桨奄拆撵排唱凤们韦初筷褒缸肝樟凝乎巴婴减兄团棘茫差沼超又雕客散也耀一孝匿痛搭避施吵垃例迎八渐暑宏淘糯捍甫嫉恤抱叛芳渴擎象逛宦颂馋站次此洋桌谐服带皂衣令伏陷籽镇筐吊帚榨梨卵路兆朔攘硫蠕芦弹趟没斋做奔逼罪阔喻菌背宙兆裂股琉请晋撼屏狐徘返驹滦言捅囱逆矫颂挖页谐潘裔
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。