摘 要 隨著智能手機的高速發(fā)展,手機軟件開發(fā)成為了當下熱門行業(yè)。目前主流的手機操作系統(tǒng)Android操作系統(tǒng)的智能手機市場占有率很高,其操作平臺是基于Linux為核心,支持和使用Java作為編程語言開發(fā)相應(yīng)的手機軟件。本文以Java語言為基礎(chǔ),通過分析Java語言的概述及手機軟件應(yīng)用程序架構(gòu),簡要敘述基于Java語言下手機軟件開發(fā)技術(shù),最后以基于Java語言對手機加密軟件開發(fā)實例進行探討,提高了文章的操作性和實用性,使得讀者能夠更加清晰的了解基于Java語言的手機軟件開發(fā)技術(shù)。
【關(guān)鍵詞】Java語言 Android操作系統(tǒng) 軟件設(shè)計 開發(fā)技術(shù)
1 Java語言概述與手機軟件應(yīng)用程序
1.1 Java語言
Java語言內(nèi)涵和實質(zhì)是面向網(wǎng)絡(luò)程序設(shè)計的設(shè)計的語言,是程序員的在創(chuàng)建應(yīng)用程序時必備的工具,并且這些應(yīng)用程序在設(shè)計之后,能夠被下載和普遍、穩(wěn)定、安全運用,Java語言是面向?qū)ο蟮恼Z言,內(nèi)部軟件能夠通過部件的形式進行編程,而為了滿足軟件內(nèi)部的協(xié)調(diào)和各種需求,軟件內(nèi)部是相互協(xié)調(diào)。所有的程序語言都是通過編譯和解釋之后才應(yīng)用到電腦或者其他電子設(shè)備上執(zhí)行操作,Java語言通過編譯和解釋兩個過程:首先,將Java語言翻譯成源代碼;其次,利用虛擬機將源代碼轉(zhuǎn)換成電腦和其他電子設(shè)備可以識別的程序,從而完成軟件和程序的開發(fā)。Java虛擬機顧名思義其實是想象中的操作設(shè)備,其實質(zhì)是通過現(xiàn)實的電腦進行軟件模擬,Java源程序在通過翻譯器翻譯之后變成字節(jié)碼,這些字節(jié)碼能夠被虛擬機識別并解釋這些字節(jié)碼,然后將字節(jié)碼在發(fā)送給翻譯器,翻譯器再將其翻譯成電腦等電子設(shè)備能夠理解的機器碼,最終實現(xiàn)整個編程過程。
1.2 手機軟件應(yīng)用程序
從目前應(yīng)用最為廣泛、發(fā)展速度最快的安卓手機來看,其應(yīng)用程序主要包括Activity、Service、Content Provider、Intent。在這些應(yīng)用程序中,Activity主要提供多個使用數(shù)據(jù)的存儲,并且能夠獨立保持后臺運行的服務(wù),Intent是手機軟件運行過程中,擁有自動保存機制,簡單的說就是一個程序或者是一個活動,轉(zhuǎn)跳到另外一個程序或者活動,它能夠?qū)崿F(xiàn)數(shù)據(jù)的自動保存,方便程序和活動的切換,防止在切換的過程中數(shù)據(jù)無故丟失。在手機應(yīng)用過程中,應(yīng)用程序是整個軟件的核心組成部分,其涵蓋的內(nèi)容相當廣泛。例如手機的通信、短信、客戶端、瀏覽器和游戲等等。這些應(yīng)用程序的構(gòu)造主要是通過Java語言進行編寫的,Java語言提供了應(yīng)用程序之間的相互交互,使得整個應(yīng)用程序得框架結(jié)構(gòu)得到簡化,并且其相關(guān)的重要部件之間的使用也得到了簡化。
1.3 基于Java語言的手機軟件軟件開發(fā)
在設(shè)計過程中,Java語言在手機軟件開發(fā)中的技術(shù)分析從方法、開發(fā)過程以及開發(fā)環(huán)境的搭建三個最主要的方面進行分析。
1.3.1 手機軟件開發(fā)的方法
前文中已經(jīng)說明了Java語言在安卓手機中的開發(fā)應(yīng)用,開發(fā)主要是利用Java語言進行編寫的,編寫完成之后以應(yīng)用程序的形式被下載和應(yīng)用。
1.3.2 手機軟件開發(fā)過程
在手機軟件的開發(fā)過程中,為了保護軟件的穩(wěn)定性和安全性,在開發(fā)時需要設(shè)置相應(yīng)的用戶權(quán)限,即用戶界面設(shè)計和資源的獲取是有一定的權(quán)限設(shè)置,只有在權(quán)限允許的情況下,才能完成相應(yīng)的資源提取和程序啟動,這是對應(yīng)用程序的保護,而獲取權(quán)限和對權(quán)限進行命名時,有屬于用戶的使用和體驗過程。為了更好的保護用戶文件的權(quán)限,在生成用戶界面的過程時,主要是由代碼直接生成以及XML生成兩種方式。
1.3.3 手機軟件開發(fā)環(huán)境搭建
作為最主要的設(shè)計語言,Java語言在環(huán)境搭建時應(yīng)該被首先保護和搭建,只有對最基本的程序語言進行搭建,才能進行下一步的操作。之后對于插件的安裝以及安裝Android SDK。在開發(fā)環(huán)境的搭建中,Java環(huán)境是保障系統(tǒng)安全性和穩(wěn)定性的關(guān)鍵,搭建的過程首先將JDK 進行安裝,其次對于系統(tǒng)變量進行設(shè)置。
2 基于Java語言設(shè)計手機短信加密軟件實證分析
2.1 利用的平臺和技術(shù)
2.1.1 Android 系統(tǒng)
Android系統(tǒng)是美國谷歌公司在2007年推出的,依靠其強大的性能和開放性特點,瞬間成為了移動設(shè)備操作系統(tǒng)的佼佼者,從Android系統(tǒng)的架構(gòu)上看,主要包括五個部分:Linux Kernel、Android Runtime 、Libraries、Application Framework和Applications。這五個部分構(gòu)成了Android系統(tǒng)的整個系統(tǒng),其Eclipse 開發(fā)平臺就是基于Java語言的擴展和開發(fā)平臺,許多情況下Eclipse就作為Java集成開發(fā)環(huán)境下使用,但是其用途不僅僅局限在Java語言的開發(fā)中,是Java開發(fā)工具的延伸。
2.1.2 DES加密算法
DES算法是1977年美國國家標準局采用的數(shù)據(jù)加密標準,主要是利用循環(huán)和迭代將簡單的運算轉(zhuǎn)變?yōu)榉蔷€性變換實現(xiàn)對于數(shù)據(jù)的加密和保護。在56位密鑰和64位二進制信息加密成64位密文信息。其主要有三個具體的流程:首先,出事置換IP,將明文按照一定的邏輯和順序進行順序打亂;其次,乘積交換,進行16輪迭代;最后,逆初始置換IP,按照固定表順序打亂,最終輸出64位信息,此64位信息就是加密信息,從而完成整個明文信息的加密過程。由于DES在密鑰位數(shù)和迭代數(shù)問題,導(dǎo)致DES存在明顯的缺陷,而在實際操作過程中,3DES被普遍使用,其中包含了四中模式,分別是DES-EEE3;DES-EDE3;DES-EEE2;DES-EDE2四種使用模式。在操作過程中,手機短信的字符數(shù)較少,一般采用3DES加密處理。
2.2 Android信息處理
了解Android信息處理機制對于信息加密軟件的設(shè)計非常重要,只有了解了信息是如何處理的,才能更好的有針對性的對于信息進行加密處理。Android信息處理首先通過用戶發(fā)出一條信息,發(fā)送到收件箱,調(diào)用收件箱的enqueue Message函數(shù),根據(jù)接收到的信息隊列,將信息放入收件箱中。通過Loop從收件箱中從前往后取出信息,然后通過使用者的dispatch Message函數(shù)進行信息的處理和加工,這個過程中,課件信息是由使用者進行處理和負責(zé)的。信息處理結(jié)束之后,使用者通過recycle函數(shù)再次將信息放入到收件箱中,從而為信息進行儲存和方便下次信息的使用。這個過程中,由于信息的處理屬于在開放環(huán)境下,信息很難實現(xiàn)加密處理,信息的安全性能也得不到相應(yīng)的保障,所以在機遇Java語言下,針對信息加密問題,對于手機信息加密軟件進行編程,從而獲得更加安全的信息保護。
3 基于Java語言的手機加密軟件開發(fā)
3.1 3DES加密與解密
設(shè)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"));
在整個設(shè)計過程中,進行對比其他平臺對接發(fā)現(xiàn)對于同樣的加密結(jié)果卻現(xiàn)實不同,所以針對這樣的情況,對于JDK文件進行了檢查,發(fā)現(xiàn)JDK文件現(xiàn)實如下:
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).
在結(jié)合之前我們所選擇的代碼,編寫的算法是不存在問題的,那導(dǎo)致加密結(jié)果不同的原因在哪?針對此,主要原因出現(xiàn)在MODE和padding。所以在使用JAVA語言編碼時,一定要主義采用相同的MODE和padding,只有這樣才能夠保證通信的正常使用。
3.2 Java語言手機加密軟件開發(fā)實現(xiàn)
在基于Java語言下利用DES加密算法實現(xiàn)手機信息加密軟件的開發(fā),在這個過程中,利用虛擬手機平臺,進行加解密程序編寫,模擬和實現(xiàn)加解密程序的運行效果,從而達到測試和使用加解密軟件。
(1)將手機連接到電腦中,在安卓虛擬平臺下,對于加解密軟件進行編程,為了更好的實現(xiàn)手機信息加密軟件。
(2)打開手機信息,進入到手機的短信收發(fā)界面。
(3)在手機中運行J2ME MIDlet程序,點擊手機的消息的便捷界面,從而進行手機信息的編寫,編寫完成之后,選擇相應(yīng)的聯(lián)系人,從而完成整個短信內(nèi)容的編寫過程。
(4)進入目標手機的接收界面,對于剛剛編寫的接收信息進行編輯,從而達到解密的目的,解密完成后,此次加解密操作就算完成了。
4 手機加密軟件開發(fā)的難點
加解密軟件利用的是JDK1.5,此次的實驗主要是針對Android手機開發(fā)的應(yīng)用軟件,所以適用性上僅僅適用于安卓手機用戶,不能夠移植到其他系統(tǒng)中。在實際的軟件開發(fā)過程中,DES加密密鑰在Java庫函數(shù)中是隨機產(chǎn)生的,所以在操作的過程中用戶沒有輸入相應(yīng)的密鑰操作,和普通手機發(fā)短信沒有表面的區(qū)別。其中難點在于軟件必須保證通信雙方共同使用該軟件,才能夠正常的實現(xiàn)短信的收發(fā)功能,如果一方未安裝加密軟件,則加密軟件就不能發(fā)揮相應(yīng)的作用。
5 總結(jié)
移動電子設(shè)備已經(jīng)成為了人們生產(chǎn)、生活必不可少的重要工具,伴隨著技術(shù)的不斷革新和發(fā)展,手機的功能越來越強大,在帶給人們便利的背后,離不開對于手機軟件開發(fā)的創(chuàng)新和探索。近年來,對于手機軟件的需求和要求不斷提高,不僅需要新穎的軟件和應(yīng)用程序,更需要穩(wěn)定、安全、便捷的操作體驗,所以在Java語言編程下的手機軟件需要在發(fā)展和創(chuàng)新的過程中不斷積累經(jīng)驗,提高軟件的安全性、穩(wěn)定性和適用性,從而推動手機的發(fā)展。
參考文獻
[1]楊治.手機軟件交互設(shè)計研究[D].哈爾濱工程大學(xué),2013.
[2]韓路,高賢強.基于Android系統(tǒng)的手機軟件開發(fā)研究[J].電子技術(shù)與軟件工程,2014(03):60-61.
[3]周銳棠.闡述Java語言在手機中的結(jié)合運用[J].數(shù)字技術(shù)與應(yīng)用,2010(11):204.
[4]宋杰,黨李成,郭振朝,趙萌. Android OS手機平臺的安全機制分析和應(yīng)用研究[J].計算機技術(shù)與發(fā)展, 2010,20(06):152-155.
[5]埃始兒,陳灝鵬.Java的編程思想[M].北京:機械工業(yè)出版社,2009(08).
作者簡介
陳林,工程碩士學(xué)位?,F(xiàn)為江蘇省鹽城機電高等職業(yè)技術(shù)學(xué)校講師。研究方向為計算機技術(shù)應(yīng)用。
作者單位
江蘇省鹽城機電高等職業(yè)技術(shù)學(xué)校 江蘇省鹽城市 224005