基于Android平台的票据打印服务设计与实现

 2022-07-28 09:07

论文总字数:56964字

摘 要

自Android平台发布以来,Android的开源性和便利性等优势令它成为全球使用者最多的智能移动操作系统,并逐渐向其他智能平台发展 ,占有越来越重要的地位。Android系统提供了Jar包、JNI、Service等多种方式实现应用程序对专用外设的功能调用,其中Service使设备驱动功能独立于应用程序,能更好的处理调用冲突和并发控制,是目前Android系统比较流行的实现方案。

本论文主要工作是以带有打印外设的Android智能终端作为开发平台,设计一套票据打印Service服务,使Android应用可以通过标准Android服务接口实现票据打印。实现方案代码从上到下分为Demo、Service、JNI三大部分。Demo部分为上层APP的调用演示,用于演示如何调用票据服务提供的AIDL接口生成票据并打印小票。Service部分为票据服务本身的实现,用java编写。JNI层为打印机(通过串口与Android票据终端连接)驱动的实现,用C编写。

在最终的实验中,成功验证了系统绑定Service控制接口、并发控制应用程序以及以JNI控制票据打印的功能。

关键词:Android开发,票据打印 ,Service组件,JNI

Abstract

Since the release of the Android platform, Android's advantages such as open source and convenience have made it the world's most user-friendly smart mobile operating system, and it has gradually grown to other intelligent platforms, occupying an increasingly important position. Android system provides JAR package, JNI, Service and other ways to realize the function call of the application program to the dedicated peripheral device. Among them, the service makes the device driver function independent of the application program and can better handle the call conflict and concurrency control. The system is more popular implementation program in Android.

The main work of this dissertation is that the Android smart terminal with printing peripherals is used as a development platform to design a set of ticket printing service so that the Android application can print tickets through the standard Android service interface. The program code is divided into three parts: Demo, Service, and JNI from top to bottom. The Demo section is a call demonstration of the upper APP that demonstrates how to call the AIDL interface provided by the ticket service to generate a ticket and print a ticket. The service part is the realization of the bill service itself, written in java. The JNI layer is the implementation of the printer (connected to the Android ticket terminal through the serial port), written in C.

In the final experiment, the system successfully bundled the Service control interface, concurrency control application, and uses JNI to control ticket printing.

KEY WORDS: Android Development,Bill Printing,Service component,JNI

目录

摘要 I

Abstract II

第一章 绪论 1

1.1 研究背景和意义 1

1.2 Android开发环境的搭建 1

1.2.1 工具包 1

1.2.2 IDE 2

1.3 Android开发的基本概念 4

第二章 设计方案 6

2.1 系统框架 6

2.2 上层设计 6

2.3 中间层设计 8

2.4 下层设计 9

第三章 程序实现 11

3.1 主要类包 11

3.2 模块实现 12

3.2.1 Demo层 13

3.2.2 Service层 14

3.2.3 JNI层 17

第四章 系统测试与发布 18

4.1 性能指标完成度 18

4.2 签名和发布 19

第五章 总结 21

致谢 22

参考文献 23

附录A 24

附录B 27

附录C 32

附录D 40

附录E 52

附录F 54

绪论

研究背景和意义

Android,这个词诞生在法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)笔下,而我们现在所说的Android,是指最初由安迪·鲁宾 (Andy Rubin) 开发,主要用于智能手机的一种基于Linux的操作系统。所以它不仅是《未来夏娃》中对机器人的称呼,也是我们现在日常生活中的那个绿色小人所代表的Android系统。Google公司在2005年收购了Andriod,并让安迪继续负责Android的开发。

进入21世纪,出现了许多面向PDA和智能手机的通用操作系统,如Symbian﹑Palm OS﹑Window CE﹑BlackBerry OS等系统,融合了电子邮件﹑SMS﹑Web浏览等功能,但以上通用操作系统都是以企业用户为目标,未能向普通消费者推广,直到美国苹果公司于2007年6月推出iPhone智能手机,掀起了普通消费者购买使用智能手机的热潮。而Google公司亦在这个良好的时机推出了以Android平台作为操作系统的智能手机,更重要的是Google宣布要建立一个全球性的联盟组织---开放手持设备联盟(Open Handset Alliance),这个联盟负责支持Google发布Andriod智能手机和应用程序,共同开发Android智能移动操作系统等任务。开放手持设备联盟包括了手机制造商、移动信息运营商、手机芯片商等,目前已经有34家运营商和84家的制造商,基于Andriod系统的可发展性,有着越来越多的商家加入到这个组织。

考虑到Android系统未来良好的发展趋势,以及在智能操作系统市场上的广阔前景,本人将以 Android 系统作为本论文的开发平台。而且Android系统提供有Jar包、JNI、Service等多种方式实现应用程序对专用外设(如打印机、扫描头等)的功能调用,其中Service使设备驱动功能独立于应用程序,能更好的处理调用冲突和并发控制,为本论文提供可行的方案。以Android平台作为面向用户的操作系统,结合打印外设,使Android应用可以通过标准Android服务接口实现票据打印,达到本论文的目的。

Android开发环境的搭建

工具包

安装开发环境是每个程序员进行开发的第一步,而Android的开发使用的是Java语言,要使用Java语言来进行编程,必须先安装有以下的工具包:

  1. JDK

JDK (Java Development Kit): 是开发人员使用 Java 语言进行开发必须用到的软件开发工具包,主要用来进行移动系统、嵌入式系统上的java应用程序开发。JDK主要包含JRE和编译java源码需要的编译器javac,其中JRE (Java Runtime Environment) 指的是Java运行环境,包含了java虚拟机,java基础类库。除了以上两个重要的工具,JDK还含有很多系统程序调试和分析的工具,例如:jconsole,jvisualvm等软件工具。而且为了方便开发人员学习java语言,JDK中有一些java程序编写所需的文档和demo例子程序提供给初学者和开发人员使用。JRE提供了给想运行java程序的用户所需要的软件环境,如果想要运行使用java编写的程序程序,只需安装JRE就可以了; 但是要进行java程序的开发,则要安装完整的JDK。要注意的是,JDK等开发工具包安装成功之后,都需要为其设置环境变量 (新建用户变量和系统变量),截至本文最新版本的标准JDK为Java SE 10。

  1. Android SDK

Android SDK: SDK (Software Development Kit) 软件开发工具包,它为开发人员提供了一些基本的库以及其他进行开发需要用的工具;简单来说SDK就是开发工具,再安装自己所需的IDE,就完成了开发环境的搭建。而Android SDK提供了开发Android应用的开发组件以及在Android平台上开发移动应用的各种工具集,让开发人员可以在装有Windows等系统计算机上进行Android开发。截至本文最新版本的SDK Platforms为Android8.1 (Oreo),Android SDK Tools为26.11版。

  1. Android NDK

Android NDK(Native Development Kit): 由于本论文设计的应用程序需要用到JNI进行对打印机的控制,所以要安装NDK。NDK也是一个开发工具包,用于支持开发人员在java开发过程中使用C / C 语言进行部分程序的编写。其中包括了:C / C 的原生代码库和构建文件,用于将原生代码库加入到在Android应用程序包文件(application packages files ,即.apk文件)中,更支持了所有未来Android平台的一系列原生系统头文件和库。

IDE

要进行Android开发,我们还需在计算机上安装IDE(Integrated Development Environment,集成开发环境),我使用了以下两种IDE进行了Android 的开发:

  1. Eclipse

Eclipse是一个基于Java的可扩展开发平台,它只是一个软件框架和一组服务,通过加入插件组件来构建开发人员所需的开发环境。而且Eclipse 附带了标准的插件集,包括JDK。虽然很多的开发人员都只是把 Eclipse 当作 Java 的IDE来进行Java程序的开发。Eclipse 的应用不应该局限于此,因为它是开放源代码的。使用Eclipse开发Android程序,就要为Eclipse安装ADT(Android Development Tools)。ADT是Android 开发工具,它将 Eclipse 的功能扩展,令开发人员可以快速创建Android 项目。使Eclipse可以对Android应用程 序的用户界面进行开发,而且ADT包含了Android 框架的API 组件和调试应用程序使用Android SDK 工具,以便APK 分发给应用程序。

剩余内容已隐藏,请支付后下载全文,论文总字数:56964字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;