摘 要 随着智能手机的高速发展,手机软件开发成为了当下热门行业。目前主流的手机操作系统Android操作系统的智能手机市场占有率很高,其操作平台是基于Linux为核心,支持和使用Java作为编程语言开发相应的手机软件。本文以Java语言为基础,通过分析Java语言的概述及手机软件应用程序架构,简要叙述基于Java语言下手机软件开发技术,最后以基于Java语言对手机加密软件开发实例进行探讨,提高了文章的操作性和实用性,使得读者能够更加清晰的了解基于Java语言的手机软件开发技术。
【关键词】Java语言 Android操作系统 软件设计 开发技术
1 Java语言概述与手机软件应用程序
1.1 Java语言
Java语言内涵和实质是面向网络程序设计的设计的语言,是程序员的在创建应用程序时必备的工具,并且这些应用程序在设计之后,能够被下载和普遍、稳定、安全运用,Java语言是面向对象的语言,内部软件能够通过部件的形式进行编程,而为了满足软件内部的协调和各种需求,软件内部是相互协调。所有的程序语言都是通过编译和解释之后才应用到电脑或者其他电子设备上执行操作,Java语言通过编译和解释两个过程:首先,将Java语言翻译成源代码;其次,利用虚拟机将源代码转换成电脑和其他电子设备可以识别的程序,从而完成软件和程序的开发。Java虚拟机顾名思义其实是想象中的操作设备,其实质是通过现实的电脑进行软件模拟,Java源程序在通过翻译器翻译之后变成字节码,这些字节码能够被虚拟机识别并解释这些字节码,然后将字节码在发送给翻译器,翻译器再将其翻译成电脑等电子设备能够理解的机器码,最终实现整个编程过程。
1.2 手机软件应用程序
从目前应用最为广泛、发展速度最快的安卓手机来看,其应用程序主要包括Activity、Service、Content Provider、Intent。在这些应用程序中,Activity主要提供多个使用数据的存储,并且能够独立保持后台运行的服务,Intent是手机软件运行过程中,拥有自动保存机制,简单的说就是一个程序或者是一个活动,转跳到另外一个程序或者活动,它能够实现数据的自动保存,方便程序和活动的切换,防止在切换的过程中数据无故丢失。在手机应用过程中,应用程序是整个软件的核心组成部分,其涵盖的内容相当广泛。例如手机的通信、短信、客户端、浏览器和游戏等等。这些应用程序的构造主要是通过Java语言进行编写的,Java语言提供了应用程序之间的相互交互,使得整个应用程序得框架结构得到简化,并且其相关的重要部件之间的使用也得到了简化。
1.3 基于Java语言的手机软件软件开发
在设计过程中,Java语言在手机软件开发中的技术分析从方法、开发过程以及开发环境的搭建三个最主要的方面进行分析。
1.3.1 手机软件开发的方法
前文中已经说明了Java语言在安卓手机中的开发应用,开发主要是利用Java语言进行编写的,编写完成之后以应用程序的形式被下载和应用。
1.3.2 手机软件开发过程
在手机软件的开发过程中,为了保护软件的稳定性和安全性,在开发时需要设置相应的用户权限,即用户界面设计和资源的获取是有一定的权限设置,只有在权限允许的情况下,才能完成相应的资源提取和程序启动,这是对应用程序的保护,而获取权限和对权限进行命名时,有属于用户的使用和体验过程。为了更好的保护用户文件的权限,在生成用户界面的过程时,主要是由代码直接生成以及XML生成两种方式。
1.3.3 手机软件开发环境搭建
作为最主要的设计语言,Java语言在环境搭建时应该被首先保护和搭建,只有对最基本的程序语言进行搭建,才能进行下一步的操作。之后对于插件的安装以及安装Android SDK。在开发环境的搭建中,Java环境是保障系统安全性和稳定性的关键,搭建的过程首先将JDK 进行安装,其次对于系统变量进行设置。
2 基于Java语言设计手机短信加密软件实证分析
2.1 利用的平台和技术
2.1.1 Android 系统
Android系统是美国谷歌公司在2007年推出的,依靠其强大的性能和开放性特点,瞬间成为了移动设备操作系统的佼佼者,从Android系统的架构上看,主要包括五个部分:Linux Kernel、Android Runtime 、Libraries、Application Framework和Applications。这五个部分构成了Android系统的整个系统,其Eclipse 开发平台就是基于Java语言的扩展和开发平台,许多情况下Eclipse就作为Java集成开发环境下使用,但是其用途不仅仅局限在Java语言的开发中,是Java开发工具的延伸。
2.1.2 DES加密算法
DES算法是1977年美国国家标准局采用的数据加密标准,主要是利用循环和迭代将简单的运算转变为非线性变换实现对于数据的加密和保护。在56位密钥和64位二进制信息加密成64位密文信息。其主要有三个具体的流程:首先,出事置换IP,将明文按照一定的逻辑和顺序进行顺序打乱;其次,乘积交换,进行16轮迭代;最后,逆初始置换IP,按照固定表顺序打乱,最终输出64位信息,此64位信息就是加密信息,从而完成整个明文信息的加密过程。由于DES在密钥位数和迭代数问题,导致DES存在明显的缺陷,而在实际操作过程中,3DES被普遍使用,其中包含了四中模式,分别是DES-EEE3;DES-EDE3;DES-EEE2;DES-EDE2四种使用模式。在操作过程中,手机短信的字符数较少,一般采用3DES加密处理。
2.2 Android信息处理
了解Android信息处理机制对于信息加密软件的设计非常重要,只有了解了信息是如何处理的,才能更好的有针对性的对于信息进行加密处理。Android信息处理首先通过用户发出一条信息,发送到收件箱,调用收件箱的enqueue Message函数,根据接收到的信息队列,将信息放入收件箱中。通过Loop从收件箱中从前往后取出信息,然后通过使用者的dispatch Message函数进行信息的处理和加工,这个过程中,课件信息是由使用者进行处理和负责的。信息处理结束之后,使用者通过recycle函数再次将信息放入到收件箱中,从而为信息进行储存和方便下次信息的使用。这个过程中,由于信息的处理属于在开放环境下,信息很难实现加密处理,信息的安全性能也得不到相应的保障,所以在机遇Java语言下,针对信息加密问题,对于手机信息加密软件进行编程,从而获得更加安全的信息保护。
3 基于Java语言的手机加密软件开发
3.1 3DES加密与解密
设Ek( )和Dk( )代表DES算法的加密和解密过程,K代表DES算法,使用的密钥P代表明文,C代表密表。
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:P=Dk1((EK2(Dk3(C)
public static byte[] desEncrypt(String message, String key) throws Exception { Cipher cipher = Cipher.getInstance("DESede"); DESKeySpec desKeySpec=new DESKeySpec(key.getBytes("UTF-8")); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede"); SecretKey secretKey = keyFactory.generateSecret(desKeySpec); cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return cipher.doFinal(message.getBytes("UTF-8"));
在整个设计过程中,进行对比其他平台对接发现对于同样的加密结果却现实不同,所以针对这样的情况,对于JDK文件进行了检查,发现JDK文件现实如下:
A transformation is a string that describes the operation (or set of operations) to be performed on the given input, to produce some output.
A transformation is of the form:
·"algorithm/mode/padding" or ·"algorithm"
(in the latter case, provider-specific default values for the mode and padding scheme are used).
在结合之前我们所选择的代码,编写的算法是不存在问题的,那导致加密结果不同的原因在哪?针对此,主要原因出现在MODE和padding。所以在使用JAVA语言编码时,一定要主义采用相同的MODE和padding,只有这样才能够保证通信的正常使用。
3.2 Java语言手机加密软件开发实现
在基于Java语言下利用DES加密算法实现手机信息加密软件的开发,在这个过程中,利用虚拟手机平台,进行加解密程序编写,模拟和实现加解密程序的运行效果,从而达到测试和使用加解密软件。
(1)将手机连接到电脑中,在安卓虚拟平台下,对于加解密软件进行编程,为了更好的实现手机信息加密软件。
(2)打开手机信息,进入到手机的短信收发界面。
(3)在手机中运行J2ME MIDlet程序,点击手机的消息的便捷界面,从而进行手机信息的编写,编写完成之后,选择相应的联系人,从而完成整个短信内容的编写过程。
(4)进入目标手机的接收界面,对于刚刚编写的接收信息进行编辑,从而达到解密的目的,解密完成后,此次加解密操作就算完成了。
4 手机加密软件开发的难点
加解密软件利用的是JDK1.5,此次的实验主要是针对Android手机开发的应用软件,所以适用性上仅仅适用于安卓手机用户,不能够移植到其他系统中。在实际的软件开发过程中,DES加密密钥在Java库函数中是随机产生的,所以在操作的过程中用户没有输入相应的密钥操作,和普通手机发短信没有表面的区别。其中难点在于软件必须保证通信双方共同使用该软件,才能够正常的实现短信的收发功能,如果一方未安装加密软件,则加密软件就不能发挥相应的作用。
5 总结
移动电子设备已经成为了人们生产、生活必不可少的重要工具,伴随着技术的不断革新和发展,手机的功能越来越强大,在带给人们便利的背后,离不开对于手机软件开发的创新和探索。近年来,对于手机软件的需求和要求不断提高,不仅需要新颖的软件和应用程序,更需要稳定、安全、便捷的操作体验,所以在Java语言编程下的手机软件需要在发展和创新的过程中不断积累经验,提高软件的安全性、稳定性和适用性,从而推动手机的发展。
参考文献
[1]杨治.手机软件交互设计研究[D].哈尔滨工程大学,2013.
[2]韩路,高贤强.基于Android系统的手机软件开发研究[J].电子技术与软件工程,2014(03):60-61.
[3]周锐棠.阐述Java语言在手机中的结合运用[J].数字技术与应用,2010(11):204.
[4]宋杰,党李成,郭振朝,赵萌. Android OS手机平台的安全机制分析和应用研究[J].计算机技术与发展, 2010,20(06):152-155.
[5]埃始儿,陈灏鹏.Java的编程思想[M].北京:机械工业出版社,2009(08).
作者简介
陈林,工程硕士学位。现为江苏省盐城机电高等职业技术学校讲师。研究方向为计算机技术应用。
作者单位
江苏省盐城机电高等职业技术学校 江苏省盐城市 224005