版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Java语言的安卓手机软件开发一、本文概述随着移动互联网的迅猛发展,手机应用已经成为了我们日常生活中不可或缺的一部分。作为占据市场主导地位的两大手机操作系统之一,安卓(Android)系统因其开放性和广泛的设备兼容性,吸引了全球众多开发者的关注。而Java语言,凭借其跨平台性、面向对象编程的特性以及丰富的库支持,在安卓软件开发中占据了重要地位。本文旨在探讨基于Java语言的安卓手机软件开发,包括其开发环境搭建、核心技术介绍、开发流程以及最佳实践等方面,以期帮助读者更好地理解和掌握安卓应用开发的要点,从而开发出更加优质、用户体验更佳的手机应用。二、语言基础在开发基于Java语言的安卓手机软件时,了解Java语言的基础是至关重要的。Java是一种面向对象的编程语言,其设计初衷是“一次编写,到处运行”,因此它在跨平台应用中具有独特的优势。Java语言的特点包括简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等。对于安卓开发来说,Java语言的主要应用在于AndroidSDK(软件开发工具包)的使用。AndroidSDK主要由Java语言编写,熟悉Java的语法、面向对象编程的概念以及异常处理机制等,是编写安卓应用的基础。在Java中,基本数据类型包括整型、浮点型、字符型、布尔型等,这些数据类型用于处理程序中的基本数据。Java还提供了丰富的类库,如集合框架、网络编程、多线程编程等,这些都可以直接用于安卓应用的开发中。在安卓开发中,Java语言还常被用于实现各种业务逻辑,如数据处理、用户交互、网络通信等。通过Java,开发者可以创建出功能丰富、性能稳定的安卓应用。虽然Java是安卓开发的主要语言,但近年来,Kotlin语言在安卓开发中的使用也越来越广泛。Kotlin是一种在Java虚拟机上运行的静态类型编程语言,被设计为与Java完全互操作,并且具有许多现代编程语言的特性,如空值安全、类型推断、扩展函数等。对于新的安卓开发者来说,掌握Kotlin也是一项重要的技能。三、安卓软件开发环境搭建安装Java开发工具包(JDK):由于安卓软件开发主要使用Java语言,因此首先需要安装JDK。可以从Oracle官网下载最新版本的JDK,并按照官方文档的指引进行安装。安装AndroidStudio:AndroidStudio是谷歌官方提供的安卓应用开发集成开发环境(IDE),集成了AndroidSDK和必要的构建工具。可以从Android开发者官网下载最新版本的AndroidStudio,并遵循安装向导完成安装。配置Android虚拟设备(AVD):为了方便开发者进行应用程序的调试和测试,AndroidStudio提供了AVD管理器,用于创建和管理虚拟设备。在安装完AndroidStudio后,可以通过AVD管理器创建不同版本的安卓虚拟设备。设置环境变量:为了确保AndroidStudio和JDK能够正常工作,还需要在系统环境变量中设置JDK的路径和AndroidStudio的路径。这一步骤的具体操作可能因操作系统的不同而有所差异。更新和同步Gradle:Gradle是一个开源的自动化构建工具,用于安卓项目的构建和依赖管理。在创建新的安卓项目时,AndroidStudio会自动生成一个Gradle构建脚本。开发者需要定期检查并更新Gradle的版本,以确保项目的顺利构建。四、安卓应用架构与组件在开发基于Java语言的安卓手机软件时,理解安卓应用架构和组件至关重要。安卓应用架构主要由四个基本组件构成:活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)。这些组件协同工作,为用户提供丰富的交互体验。活动(Activity):活动是安卓应用中与用户交互的主要界面,负责显示用户界面和处理用户输入。每个活动都代表一个单独的屏幕,并且具有生命周期,包括创建、启动、暂停、恢复、停止和销毁等阶段。活动使用Java类实现,并继承自Activity类或其子类。服务(Service):服务是在后台执行长时间运行操作的组件,即使应用界面不在前台也能保持运行。服务通常用于执行网络请求、播放音乐、执行文件IO等。服务不直接与用户界面交互,而是通过其他组件(如活动)来触发和接收结果。服务继承自Service类,并通过startService()方法启动。广播接收器(BroadcastReceiver):广播接收器用于接收来自系统或其他应用发送的广播。这些广播可以是网络变化、电池电量低、时区变化等系统事件,也可以是自定义事件。广播接收器继承自BroadcastReceiver类,并通过注册监听特定类型的广播。当接收到匹配的广播时,广播接收器会触发相应的处理逻辑。内容提供者(ContentProvider):内容提供者允许应用之间共享数据,并提供了一种标准的数据访问机制。通过内容提供者,应用可以定义数据的存储和访问方式,并允许其他应用通过URI(统一资源标识符)来访问这些数据。内容提供者继承自ContentProvider类,并实现相应的数据查询和更新方法。在开发过程中,合理地组织和使用这些组件对于构建稳定、高效且用户友好的安卓应用至关重要。开发者需要了解每个组件的特点和用法,并根据应用需求合理地组合它们以实现所需的功能。同时,也需要注意组件之间的通信和协作,确保应用的流畅运行和用户体验的优化。五、安卓用户界面设计在安卓软件开发中,用户界面(UI)设计是至关重要的一环。优秀的UI设计不仅能提升用户体验,还能使软件在众多应用中脱颖而出。Java语言为安卓开发者提供了丰富的UI组件和布局管理器,使得开发者能够轻松构建出既美观又易用的用户界面。安卓UI设计的基本原则包括直观性、一致性、反馈性和美观性。开发者在设计界面时,应遵循这些原则,确保用户能够轻松地理解和使用应用。在安卓中,UI组件是构建用户界面的基本元素。Java语言为安卓提供了多种UI组件,如按钮(Button)、文本框(TextView)、图像视图(ImageView)等。开发者可以根据需求选择合适的组件,并将其添加到布局中。布局管理器是安卓中用于管理UI组件位置和大小的重要工具。Java语言支持多种布局管理器,如线性布局(LinearLayout)、相对布局(RelativeLayout)和帧布局(FrameLayout)等。通过合理使用布局管理器,开发者可以实现复杂的界面布局。在安卓UI设计中,事件处理也是非常重要的一部分。事件处理机制允许开发者响应用户的交互操作,如点击按钮、滑动屏幕等。Java语言为安卓提供了丰富的事件处理机制,开发者可以通过重写组件的事件处理方法来实现交互逻辑。除了基本的UI设计和事件处理外,现代安卓应用还注重动画和过渡效果的使用。Java语言支持多种动画和过渡效果,如属性动画(ObjectAnimator)、视图切换器(ViewSwitcher)等。通过合理运用这些动画和过渡效果,开发者可以为用户带来更加流畅和吸引人的体验。在基于Java语言的安卓手机软件开发中,UI设计是不可或缺的一部分。开发者应熟悉安卓UI设计的基本原则和组件,掌握布局管理器和事件处理机制,并注重动画和过渡效果的使用。通过不断优化UI设计,开发者可以为用户带来更加优质和愉悦的使用体验。六、数据存储与访问在安卓应用开发中,数据存储和访问是一个至关重要的环节。Java语言为安卓开发者提供了多种数据存储和访问的方式,以确保应用的流畅运行和用户数据的安全。内部存储是最基本的数据存储方式,它将数据保存在应用的私有目录中,其他应用无法直接访问。这种方式适用于存储小量且敏感的数据,如用户的登录信息或配置设置。通过Java的文件操作API,开发者可以轻松地在内部存储中创建、读取和修改文件。随着安卓版本的更新,外部存储(如SD卡)的访问权限变得更加严格。在安卓10及以上版本中,应用只能在其自己的沙盒目录中访问外部存储。尽管如此,开发者仍然可以通过Java的文件操作API和特定的权限请求,将文件保存到外部存储,并在需要时读取。对于需要存储结构化数据的应用,SQLite是一个轻量级的数据库解决方案。Java提供了SQLite的接口,允许开发者在安卓设备上创建、查询和管理数据库。通过SQL语句和Java的数据库操作API,开发者可以高效地存储和检索大量数据。内容提供者(ContentProviders)是安卓提供的一种数据共享机制,它允许不同的应用之间共享数据。开发者可以通过Java实现自定义的内容提供者,以提供或获取其他应用的数据。这种方式适用于需要与其他应用进行数据交互的场景。对于需要远程存储或共享数据的应用,网络存储是一个很好的选择。Java提供了多种网络编程技术,如HTTP客户端和JSON解析库,帮助开发者将数据上传到远程服务器或从服务器获取数据。同时,考虑到数据的安全性和隐私性,开发者还需要实现适当的数据加密和访问控制机制。无论选择哪种数据存储方式,加密和安全都是不可忽视的问题。Java提供了多种加密算法和安全机制,如AES加密和SHA哈希函数,以确保用户数据的安全。开发者应该根据数据的敏感性和应用的需求,选择合适的数据加密和安全措施。Java语言为安卓开发者提供了丰富的数据存储和访问方式。开发者应该根据应用的需求和用户数据的敏感性,选择合适的数据存储和访问方案,以确保应用的稳定运行和用户数据的安全。七、网络编程与通信在Java语言为基础的安卓手机软件开发中,网络编程与通信是不可或缺的一部分。随着移动互联网的迅猛发展,手机应用程序越来越多地需要与远程服务器进行交互,以实现数据的传输、用户身份的验证、实时信息的更新等功能。在Android开发中,使用HttpURLConnection或ApacheHttpClient等类库,可以方便地实现HTTP通信。这些类库支持GET、POST等请求方法,以及处理响应数据。通过HTTP协议,应用程序可以向服务器发送请求,获取或更新数据。对于需要实时交互的应用场景,如在线聊天、实时数据流传输等,WebSocket提供了有效的解决方案。WebSocket允许在单个TCP连接上进行全双工通信,服务器可以主动向客户端推送信息,实现了真正的实时通信。在网络通信中,数据通常以JSON(JavaScriptObjectNotation)格式进行传输。Android开发中,常使用JSONObject和JSONArray等类来解析和处理JSON数据。这些类提供了简洁易用的API,方便开发者将JSON数据转换为Java对象,或将Java对象转换为JSON数据。在进行网络通信时,数据的安全性至关重要。Android提供了SSLTLS等加密技术,以确保数据传输的安全性。开发者需要合理配置网络请求,使用HTTPS等安全协议,防止数据在传输过程中被窃取或篡改。为避免网络请求阻塞UI线程,造成应用界面无响应,Android开发中常采用异步处理机制。还有多种网络请求库可供选择,如Retrofit、Volley等。这些库提供了简洁的API和强大的功能,如自动处理缓存、重试机制、线程管理等,极大地简化了网络编程的复杂度。Java语言在安卓手机软件开发中的网络编程与通信方面提供了丰富的工具和库,开发者可以根据具体需求选择合适的技术和方案,实现高效、安全、稳定的网络通信功能。八、多媒体应用开发在安卓手机软件开发中,多媒体应用占据了重要的地位。基于Java语言的安卓开发,为多媒体应用提供了丰富的API和工具,使得开发者能够轻松地实现音频、视频、图像等多媒体内容的处理与展示。安卓提供了MediaPlayer和AudioTrack等类,用于处理音频的播放和录制。开发者可以使用MediaPlayer播放音乐或音效,通过设置不同的数据源、监听播放状态变化,实现音频的播放控制。而AudioTrack则允许开发者直接访问音频硬件,进行音频数据的录制和播放。对于视频处理,安卓提供了VideoView和SurfaceView等组件。VideoView是一个简单的视频播放控件,支持常见的视频格式,开发者只需指定视频文件的路径或URL,即可实现视频的播放。而SurfaceView则提供了更底层的视频处理能力,开发者可以通过MediaPlayer与SurfaceView结合,实现更复杂的视频播放和控制功能。在图像处理方面,Java提供了Bitmap和Canvas等类,用于图像的加载、处理和绘制。开发者可以使用BitmapFactory加载图像文件,然后通过Canvas和Paint类进行图像的绘制、裁剪、缩放等操作。安卓还提供了Camera和Camera2API,用于访问手机摄像头,实现拍照和视频录制功能。为了实现多媒体数据的处理,如音频和视频的录制、编辑和传输,开发者通常需要进行多媒体数据的编解码。安卓提供了MediaCodec和MediaExtractor等类,用于处理多媒体数据的编解码。开发者可以使用MediaExtractor从多媒体文件中提取出原始的数据流,然后通过MediaCodec进行编解码处理,最终得到可播放或处理的多媒体数据。基于Java语言的安卓手机软件开发在多媒体应用方面提供了丰富的功能和工具,使得开发者能够轻松实现音频、视频、图像等多媒体内容的处理与展示。通过灵活运用这些多媒体开发技术,开发者可以开发出功能丰富、界面美观的多媒体应用,满足用户在手机上的多媒体需求。九、性能优化与调试性能优化是安卓手机软件开发中至关重要的一环,它直接影响到应用的响应速度、电池寿命和用户体验。Java语言作为安卓开发的主流语言,其性能优化和调试方法也成为开发者必须掌握的技能。避免内存泄漏:通过合理使用对象和监听器,确保不再使用的资源能够被垃圾回收机制及时回收。优化数据存储:合理使用SQLite、SharedPreferences等存储方式,减少内存占用。布局优化:减少布局层级,使用ConstraintLayout等现代布局管理器,提高渲染效率。异步加载:对于图片和数据的加载,采用后台线程处理,避免阻塞UI线程。避免冗余代码:通过代码审查和重构,消除不必要的代码,提高执行效率。使用高效的数据结构和算法:选择合适的数据结构和算法可以显著提升程序性能。合理使用线程:对于耗时操作,如网络请求、大量数据处理等,应使用线程池进行管理。线程间通信:合理使用同步机制,如Handler、AsyncTask等,确保线程间通信的正确性。使用AndroidStudio的Profiler:通过Profiler工具监控应用的CPU、内存和网络使用情况,定位性能瓶颈。代码插桩:通过插桩技术,收集应用运行时的性能数据,为优化提供依据。适配不同设备:确保应用在不同尺寸和分辨率的设备上都能良好运行。合理安排网络请求:避免频繁的网络请求,使用缓存机制减少数据传输。十、案例分析与实践在本章节中,我们将通过一个简单的案例来展示如何使用Java语言进行安卓手机软件开发。我们将开发一个名为“TodoList”的简单应用,该应用允许用户创建、查看和编辑待办事项列表。我们需要在AndroidStudio中创建一个新的项目,并为其命名。我们设计应用的界面。TodoList应用将包含两个主要界面:主界面显示待办事项列表,点击某个事项后进入编辑界面进行编辑。为了存储待办事项,我们需要设计一个简单的数据库。在安卓开发中,我们通常使用SQLite数据库。我们将创建一个名为Todo的表,包含id(主键)、title(事项标题)和description(事项描述)等字段。我们将使用Java语言编写应用的核心逻辑。我们创建一个名为TodoItem的Java类,用于表示待办事项。我们编写一个名为TodoDBHelper的类,用于操作SQLite数据库。在主界面,我们使用一个RecyclerView控件来展示待办事项列表。我们创建一个Adapter类,用于将待办事项数据绑定到RecyclerView控件上。当用户点击某个事项时,我们启动一个新的Activity,进入编辑界面。在编辑界面,我们使用EditText控件让用户输入待办事项的标题和描述。当用户点击保存按钮时,我们将待办事项数据保存到数据库中,并返回到主界面。在开发过程中,我们需要不断调试和优化应用。例如,我们需要确保数据库操作正确无误,界面布局合理美观,以及应用性能良好等。当应用开发完成后,我们可以使用AndroidStudio将其打包成APK文件。我们可以将APK文件安装到安卓手机上进行测试,或者将其发布到各大应用商店供用户下载使用。十一、总结与展望随着移动互联网的飞速发展,基于Java语言的安卓手机软件开发已成为行业的主流之一。本文详细探讨了Java语言在安卓开发中的应用,从环境搭建到基础语法,再到高级特性和框架,逐步深入,为读者展现了一个完整的安卓开发蓝图。Java语言凭借其跨平台性、面向对象、丰富的API库和强大的社区支持,在安卓开发领域占据了一席之地。通过本文的学习,读者不仅能够掌握基本的安卓开发技能,还能够深入了解高级特性和优化技巧,为自己的职业发展打下坚实的基础。同时,本文也强调了代码规范、性能优化和用户体验在软件开发中的重要性,希望开发者能够在实际开发中予以重视。未来,随着5G、AI、物联网等技术的普及,安卓手机软件开发将面临更多的挑战和机遇。Java作为成熟、稳定的语言,将继续在安卓开发中发挥重要作用。同时,Kotlin等新兴语言也将为安卓开发带来新的活力。未来的安卓开发者需要不断学习新技术、新框架,紧跟时代的步伐,以满足日益复杂和多样化的用户需求。随着全球化趋势的加强,跨平台、跨语言的开发技术也将越来越受到重视。如何在保持Java语言优势的同时,融合其他语言的特性,将是未来安卓开发者需要思考的问题。基于Java语言的安卓手机软件开发是一个充满挑战和机遇的领域。只有不断学习、创新和实践,才能在这个领域中立于不败之地。参考资料:Java是一种广泛使用的程序设计语言,具有跨平台的特性,可以应用于各种不同的操作系统和设备。在安卓手机软件开发领域,Java是最常用的开发语言之一。跨平台性:Java语言的跨平台性使得开发者可以编写一次代码,然后在不同的操作系统和设备上运行,无需对每个平台单独编写代码。面向对象:Java是一种面向对象的语言,开发者可以使用面向对象的思想和方法来设计和开发应用程序,提高代码的可重用性、可维护性和可扩展性。丰富的API库:Java语言提供了丰富的API库,涵盖了网络编程、数据库操作、图形界面设计等多个方面,开发者可以利用这些库函数来快速开发应用程序。安全性和内存管理:Java语言具有安全性和内存管理的特性,可以避免许多内存泄漏和安全漏洞的问题,提高应用程序的稳定性和可靠性。需求分析:明确应用程序的功能需求、用户需求、业务流程等,并进行分析和梳理。设计阶段:根据需求分析结果,进行应用程序的设计,包括界面设计、数据库设计、网络通信设计等。编码阶段:使用Java语言编写应用程序的代码,实现应用程序的各种功能和业务逻辑。测试阶段:对编写好的应用程序进行功能测试、性能测试、安全测试等,确保应用程序的质量和稳定性。发布阶段:将应用程序打包成APK文件,并发布到GooglePlay等应用商店中,供用户下载和使用。Java语言在安卓手机软件开发中具有明显的优势,其跨平台性、面向对象性、丰富的API库以及安全性和内存管理的特性使得开发者可以快速、高效地开发出高质量的应用程序。通过明确需求分析、进行设计、编码、测试和发布等步骤,可以成功地使用Java语言进行安卓手机软件开发。随着智能手机的普及和移动互联网的发展,安卓手机软件开发成为了当今热门的技术之一。而Java语言作为安卓开发的首选语言,掌握Java语言对于安卓开发者来说至关重要。本文将详细介绍基于Java语言的安卓手机软件开发教学研究,包括教学思路、教学步骤、实例分析和注意事项等方面。Java语言是一种面向对象的编程语言,由SunMicrosystems公司开发。它具有平台无关性、安全性、多线程等特点,成为安卓手机软件开发的首选语言。安卓手机软件开发是基于Java语言的一种技术,使得开发者能够编写出高效、稳定、安全的移动应用程序。基于Java语言的安卓手机软件开发教学旨在培养学生具备一定的编程能力和移动应用开发能力。教学内容应突出重点,注重理论与实践相结合。主要教学重点应包括Java语言基础、Android开发环境搭建、UI设计、基本交互操作、数据存储与访问、网络编程等方面。教学方法可以采用课堂讲解、实例演示、编程实践相结合的方式。通过课堂教学,让学生了解基本的概念和理论知识;通过实例演示,让学生直观地了解开发流程和实现方法;通过编程实践,让学生自己动手编写代码,培养实际操作能力。环境搭建:首先需要安装JDK(JavaDevelopmentKit)和AndroidStudio,这是进行Java和安卓开发的基础环境。知识储备:进行Java语言基础知识的学习,包括变量、数据类型、控制语句、数组、面向对象等。同时,也需要了解Android开发的基本概念和UI设计基础。实践编程:通过AndroidStudio进行应用开发,实现UI设计、交互操作、数据存储与访问、网络编程等功能。调试运行:在开发过程中,需要进行调试和运行,确保程序的正确性和稳定性。可以使用Android模拟器进行测试,也可以将应用安装到实际手机上进行测试。以一个简单的安卓应用程序为例,比如一个记事本应用。需要设计应用的界面,包括一个文本输入框和一个保存按钮。当用户输入文本并点击保存按钮时,应用将把文本保存到本地文件中。以下是简单的实现过程:在AndroidStudio中创建一个新的项目,选择一个适当的模板,如EmptyActivity。在项目中创建一个新的Java类,命名为NotePad。该类将包含一个文本输入框(EditText)和一个按钮(Button)的实例。在NotePad类的构造函数中,初始化这两个实例并设置他们的属性,如id、text等。在NotePad类中添加一个事件监听器,用于处理按钮点击事件。当按钮被点击时,调用一个方法(如saveNote)来保存用户输入的文本。在saveNote方法中,获取EditText的文本内容,并使用Java的File类将文本保存到本地文件中。运行应用程序并进行测试。可以使用Android模拟器或实际手机进行测试,检查应用是否能够正常地保存文本。空指针异常:避免在调用对象的方法或属性时出现空指针异常。尤其是在用户输入数据之后,一定要进行非空判断。内存泄漏:避免在应用程序中发生内存泄漏。例如,使用Bitmap对象时,一定要在使用后调用recycle()方法来释放内存。应用性能:避免在应用程序中出现过多的嵌套循环、大量计算等导致应用性能下降的问题。安全问题:避免在应用程序中存在安全隐患,如隐私泄露、恶意代码等。建议使用安全的编程实践,如加密存储敏感信息、验证用户输入等。本文介绍了基于Java语言的安卓手机软件开发教学研究,包括教学思路、教学步骤和实例分析等方面。通过课堂教学、实例演示和编程实践相结合的教学方法,可以帮助学生快速掌握安卓开发的基本知识和技能。在实践过程中,需要注意一些常见的问题,如语法错误、空指针异常、内存泄漏、应用性能和安全问题等。希望本文能够帮助对安卓开发感兴趣的学生更好地学习和掌握相关知识和技能。Java是一种面向对象的编程语言,具有可移植性和易于学习的特点。Android是谷歌推出的移动设备操作系统,采用Linux内核和开放源代码,支持各种应用程序的开发和发布。安装Java开发工具包(JDK)和集成开发环境(IDE),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度广告发布合同-标的为一系列产品广告宣传
- 电脑打印机市场发展预测和趋势分析
- 2024年度保鲜库工程质量检测合同
- 金属加工用成型机市场发展预测和趋势分析
- 2024年度环保设备采购合同详细条款及标的
- 2024年度智慧城市建设项目实施与运营合同
- 2024年度广告代理服务合同
- 衣服罩储藏用市场发展预测和趋势分析
- 2024年度水库养鱼饲料供应合同
- 2024年度城市轨道交通建设专用设备供应合同
- 《口腔医学影像学课件》
- 23J916-1:住宅排气道(一)
- 责任心与执行力全文PPT
- 北京市存档人员登记表
- Python实战之数据库应用和数据获取PPT完整全套教学课件
- 为农服务中心建设实施方案(通用3篇)
- GB/T 16400-2023绝热用硅酸铝棉及其制品
- 消防安全标识课程培训
- 特应性皮炎的护理查房12301
- 辣白菜制作方法课件
- 普通高中新课程方案介绍课件
评论
0/150
提交评论