999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android平臺(tái)雙以太網(wǎng)接口設(shè)計(jì)與實(shí)現(xiàn)

2017-09-09 12:57:01張建民高大利
軟件導(dǎo)刊 2017年8期
關(guān)鍵詞:按鈕設(shè)置

張建民+高大利

摘 要:隨著嵌入式技術(shù)的飛速發(fā)展,移動(dòng)設(shè)備融合了PC的以太網(wǎng)等功能。介紹了有線通信終端的軟硬件平臺(tái),使用USB2.0 HUB和USB轉(zhuǎn)以太網(wǎng)芯片,在嵌入式硬件平臺(tái)上設(shè)計(jì)了雙以太網(wǎng)接口,然后使用Eclipse集成開(kāi)發(fā)工具,采用Java語(yǔ)言編程實(shí)現(xiàn)了雙以太網(wǎng)IP地址設(shè)置軟件,并通過(guò)功能測(cè)試驗(yàn)證了雙以太網(wǎng)的接口功能。該方法能夠較好地解決嵌入式硬件平臺(tái)多以太網(wǎng)接口的設(shè)計(jì)問(wèn)題,而且為Android平臺(tái)多以太網(wǎng)接口的IP地址設(shè)置提供了有效的擴(kuò)展方法。

關(guān)鍵詞:Android;雙以太網(wǎng);接口設(shè)計(jì);地址設(shè)置

DOIDOI:10.11907/rjdk.172175

中圖分類號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):1672-7800(2017)008-0097-03

0 引言

Android是一種基于Linux的開(kāi)源操作系統(tǒng)[1],由Google公司開(kāi)發(fā)。Android系統(tǒng)主要應(yīng)用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦等。隨著嵌入式技術(shù)的飛速發(fā)展,移動(dòng)設(shè)備融合了PC的諸多特性[2-4],如支持以太網(wǎng)等功能。由于原生的Android系統(tǒng)不支持以太網(wǎng)等功能,這就要求對(duì)Android系統(tǒng)進(jìn)行定制開(kāi)發(fā),以實(shí)現(xiàn)特定功能。

對(duì)安全保密性要求較高的行業(yè),大多采用以太網(wǎng)接口進(jìn)行有線通信。本文以有線通信終端為例,介紹了有線通信終端的軟硬件平臺(tái),在嵌入式硬件平臺(tái)上設(shè)計(jì)了雙以太網(wǎng)接口,并在Ubuntu12.04宿主機(jī)上,使用Eclipse集成開(kāi)發(fā)工具,采用Java語(yǔ)言編程實(shí)現(xiàn)了雙以太網(wǎng)IP地址設(shè)置軟件。

1 有線通信終端軟硬件平臺(tái)

1.1 有線通信終端硬件平臺(tái)

有線通信終端硬件平臺(tái)由三星Exynos 4412四核ARM處理器、1GB DDR3內(nèi)存、4GB eMMC閃存、USB/OTG、液晶屏、觸摸屏、攝像頭、電源管理芯片、音頻芯片等部分組成。USB2.0 HUB芯片USB3503通過(guò)HSIC總線與Exynos 4412處理器相連,可擴(kuò)展3個(gè)USB2.0接口,通過(guò)擴(kuò)展的USB2.0接口連接2個(gè)USB轉(zhuǎn)以太網(wǎng)芯片DM9621,可對(duì)外提供2個(gè)10/100M自適應(yīng)的以太網(wǎng)接口。有線通信終端的硬件平臺(tái)如圖1所示。

1.2 有線通信終端軟件平臺(tái)

有線通信終端軟件平臺(tái)采用Android4.4系統(tǒng),由Linux 內(nèi)核、Android運(yùn)行時(shí)和庫(kù)、應(yīng)用程序框架、應(yīng)用程序4個(gè)層次組成[5-7]。Linux內(nèi)核包括顯示驅(qū)動(dòng)、攝像頭驅(qū)動(dòng)、觸摸屏驅(qū)動(dòng)、音頻驅(qū)動(dòng)、USB驅(qū)動(dòng)、電源管理等;Android運(yùn)行時(shí)和庫(kù)包括界面管理器、媒體框架、SQLite、WebKit、libc、核心庫(kù)、Dalvik虛擬機(jī)等;應(yīng)用程序框架包括活動(dòng)管理器、窗口管理器、內(nèi)容提供者、通知管理器、位置管理器等;應(yīng)用程序包括主程序、聯(lián)系人、電話、瀏覽器、小部件等。有線通信終端軟件平臺(tái)如圖2所示。

有線通信終端的Linux內(nèi)核中,已適配了USB2.0 HUB芯片USB3503與USB轉(zhuǎn)以太網(wǎng)芯片DM9621的驅(qū)動(dòng),在Linux shell環(huán)境下通過(guò)ifconfig命令可對(duì)以太網(wǎng)接口的IP地址進(jìn)行設(shè)置,使用ping命令可測(cè)試雙以太網(wǎng)接口功能是否正常。但對(duì)于大部分終端使用者而言,不會(huì)使用命令來(lái)設(shè)置以太網(wǎng)接口的IP地址。因此,通過(guò)友好的界面設(shè)置以太網(wǎng)接口IP地址是十分必要的。

Android平臺(tái)雙以太網(wǎng)IP地址設(shè)置軟件的設(shè)計(jì)思路是:①界面設(shè)計(jì)采用Windows平臺(tái)以太網(wǎng)設(shè)置的傳統(tǒng)風(fēng)格,為用戶提供直觀友好的操作界面;②將用戶界面中的設(shè)置參數(shù)自動(dòng)轉(zhuǎn)化成命令腳本來(lái)設(shè)置以太網(wǎng)接口IP地址;③對(duì)于多個(gè)以太網(wǎng)接口,只需增加標(biāo)簽選項(xiàng)卡,復(fù)用代碼即可實(shí)現(xiàn)多個(gè)以太網(wǎng)接口IP地址設(shè)置軟件的開(kāi)發(fā),具有較好的擴(kuò)展性。

該軟件在Ubuntu12.04的宿主機(jī)上進(jìn)行開(kāi)發(fā),需要安裝Java 語(yǔ)言軟件開(kāi)發(fā)工具包(Java Development Kit,JDK的版本為1.6)、Android SDK(Software Development Kit)以及Eclipse ADT插件和編譯環(huán)境所需的軟件包。JDK是Java的核心,包含了Java運(yùn)行環(huán)境(Java Runtime Environment)、Java工具和Java類庫(kù)。Android SDK提供了使用Java 語(yǔ)言開(kāi)發(fā) Android 應(yīng)用程序的 API接口和工具,以便開(kāi)發(fā)者便捷地開(kāi)發(fā)應(yīng)用程序。Eclipse 是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái),可以通過(guò)在Eclipse中添加ADT(Android Development Tools,安卓開(kāi)發(fā)工具)來(lái)搭建安卓應(yīng)用程序開(kāi)發(fā)和調(diào)試環(huán)境。

2 Android平臺(tái)雙以太網(wǎng)IP地址設(shè)置軟件實(shí)現(xiàn)

Android平臺(tái)雙以太網(wǎng)IP地址設(shè)置軟件采用Java語(yǔ)言編程實(shí)現(xiàn),該軟件由以太網(wǎng)接口電源控制、靜態(tài)IP地址設(shè)置、自動(dòng)獲取IP地址等部分組成。每部分的設(shè)計(jì)與實(shí)現(xiàn)簡(jiǎn)述如下:

2.1 以太網(wǎng)接口電源控制

以太網(wǎng)接口供電通過(guò)Exynos 4412處理器的GPIO進(jìn)行控制,若以太網(wǎng)接口供電未打開(kāi),以太網(wǎng)IP地址設(shè)置軟件會(huì)提示“請(qǐng)先開(kāi)啟以太網(wǎng)!”。單擊“開(kāi)啟”按鈕后,Exynos 4412處理器的控電GPIO輸出高電平,連通供電開(kāi)關(guān),給以太網(wǎng)接口供電;以太網(wǎng)接口供電打開(kāi)后,“開(kāi)啟”按鈕的標(biāo)題變?yōu)椤瓣P(guān)閉”,單擊“關(guān)閉”按鈕后,Exynos 4412處理器的控電GPIO輸出低電平,切斷以太網(wǎng)接口的供電;單擊“以太網(wǎng)1”、“以太網(wǎng)2”標(biāo)簽選項(xiàng)卡可對(duì)兩個(gè)以太網(wǎng)接口進(jìn)行設(shè)置,以太網(wǎng)接口電源控制界面如圖3所示。

2.2 靜態(tài)IP地址設(shè)置

以太網(wǎng)接口供電打開(kāi)后,單擊“以太網(wǎng)1”或“以太網(wǎng)2” 標(biāo)簽選項(xiàng)卡選擇不同的以太網(wǎng)接口,單擊“使用下面的IP地址”單選按鈕可對(duì)以太網(wǎng)接口的靜態(tài)IP地址進(jìn)行設(shè)置,例如:可將以太網(wǎng)2的IP地址設(shè)置為:192.168.0.20,子網(wǎng)掩碼:255.255.255.0,默認(rèn)網(wǎng)關(guān):192.168.0.1,DNS1地址:101.226.4.6,DNS2地址:218.85.152.99。靜態(tài)IP地址設(shè)置界面如圖4所示。endprint

靜態(tài)IP地址設(shè)置的實(shí)現(xiàn)步驟如下:

(1)靜態(tài)IP地址設(shè)置界面由標(biāo)簽選項(xiàng)卡、單選按鈕、文本框、標(biāo)簽和按鈕組成,單擊“使用下面的IP地址”單選按鈕,在文本框中輸入靜態(tài)IP地址的相關(guān)參數(shù)。

(2)單擊“保存”按鈕后,用戶界面中的設(shè)置參數(shù)被自動(dòng)轉(zhuǎn)化為命令腳本,保存在/sdcard/ethset.sh文件中,主要代碼如下:

static public String sh_title="#! /system/bin/sh";

static public void ethstaticip(Context i_context,int i_ethtype,String i_addr,String netmask,String i_gw,String i_dns1,String i_dns2)

{ String sendmsg=sh_title+"\\n"

+"busybox ifconfig "+getethstr(i_ethtype)+" "+i_addr+" netmask "+i_netmask+" up \\n"

+"busybox route add default gw "+i_gw+" "+getethstr(i_ethtype)+"\\n"

+"setprop net.dns1 "+i_dns1+"\\n"

+"setprop net.dns2 "+i_dns2+"\\n";

writefile(i_context,sendmsg);

}

以上代碼用于生成命令腳本,/sdcard/ethset.sh示例文件內(nèi)容如下:

#! /system/bin/sh

busybox ifconfig eth1 192.168.0.20 netmask 255.255.255.0 up

busybox route add default gw 192.168.0.1 eth1

setprop net.dns1 101.226.4.6

setprop net.dns2 218.85.152.99

(3)執(zhí)行/sdcard/ethset.sh命令腳本文件,設(shè)置指定以太網(wǎng)接口的靜態(tài)IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS1、DNS2,主要代碼如下:

public class CommandExecution {

public static final String TAG = "CommandExecution";

public static CommandResult execCommand(String command, boolean isRoot) {

String[] commands = {command};

return execCommand(commands, isRoot); }

}

CommandExecution.execCommand(“/sdcard/ethset.sh”, true)

以上代碼用于執(zhí)行/sdcard/ethset.sh命令腳本,并設(shè)置以太網(wǎng)接口的靜態(tài)IP地址。

2.3 IP地址自動(dòng)獲取

以太網(wǎng)接口供電打開(kāi)后,單擊“以太網(wǎng)1”或“以太網(wǎng)2”標(biāo)簽選項(xiàng)卡,選擇不同的以太網(wǎng)接口,單擊“自動(dòng)獲取IP地址”單選按鈕可從DHCP服務(wù)器獲取IP 地址等參數(shù)。例如,以太網(wǎng)1設(shè)置為“自動(dòng)獲取IP 地址”方式,從DHCP服務(wù)器獲取IP地址等參數(shù)。自動(dòng)獲取IP 地址界面如圖5所示。

自動(dòng)獲取IP 地址的實(shí)現(xiàn)步驟如下:

(1)自動(dòng)獲取IP 地址界面由標(biāo)簽選項(xiàng)卡、單選按鈕和按鈕組成,點(diǎn)擊“自動(dòng)獲取IP 地址”單選按鈕。

(2)單擊“保存”按鈕后,設(shè)置參數(shù)被自動(dòng)轉(zhuǎn)化為命令腳本,保存在/sdcard/ethset.sh文件中,主要代碼如下:

static public String sh_title="#! /system/bin/sh";

static public void ethauto(Context i_context,int i_ethtype)

{

String sendmsg=sh_title+"\\n"

+"netcfg "+getethstr(i_ethtype)+" up dhcp \\n"; writefile(i_context,sendmsg);

}

以上代碼用于生成命令腳本,/sdcard/ethset.sh示例文件內(nèi)容如下:

#! /system/bin/sh

netcfg eth0 up dhcp

(3)執(zhí)行/sdcard/ethset.sh命令腳本文件,從DHCP服務(wù)器獲取IP地址等參數(shù),主要代碼同靜態(tài)IP地址設(shè)置的代碼相同。

3 功能測(cè)試

將有線通信終端和宿主機(jī)通過(guò)RJ45雙絞線接入路由器,用USB調(diào)試線連接有線通信終端和宿主機(jī)。在宿主機(jī)上通過(guò)adb程序?qū)⒕幾g好的以太網(wǎng)IP地址設(shè)置軟件安裝到有線通信終端,運(yùn)行程序后,設(shè)置有線通信終端以太網(wǎng)1、以太網(wǎng)2和宿主機(jī)的靜態(tài)IP地址,使它們?cè)谕粋€(gè)網(wǎng)段。以太網(wǎng)1的IP地址為192.168.0.10,以太網(wǎng)2的IP地址為192.168.0.20,宿主機(jī)的IP地址為192.168.0.1,子網(wǎng)掩碼均為255.255.255.0。在宿主機(jī)上通過(guò)ping命令進(jìn)行測(cè)試,宿主機(jī)和有線通信終端以太網(wǎng)1、以太網(wǎng)2之間均能相互通信,無(wú)丟包現(xiàn)象。endprint

將有線通信終端以太網(wǎng)1、以太網(wǎng)2和宿主機(jī)均設(shè)置為“自動(dòng)獲取IP地址”方式,從路由器自動(dòng)獲取IP地址,在Linux shell環(huán)境下通過(guò)ifconfig命令可查看到以太網(wǎng)1的IP地址為192.168.0.116,以太網(wǎng)2的IP地址為192.168.0.113,宿主機(jī)的IP地址為192.168.0.112,子網(wǎng)掩碼均為255.255.255.0。在宿主機(jī)上通過(guò)ping命令進(jìn)行測(cè)試,宿主機(jī)和有線通信終端以太網(wǎng)1、以太網(wǎng)2之間均能相互通信,無(wú)丟包現(xiàn)象。

4 結(jié)語(yǔ)

本文對(duì)有線通信終端的軟硬件平臺(tái)進(jìn)行了介紹,在三星Exynos 4412硬件平臺(tái)上采用USB2.0 HUB芯片USB3503擴(kuò)展了USB2.0接口,通過(guò)USB轉(zhuǎn)以太網(wǎng)芯片DM9621實(shí)現(xiàn)了以太網(wǎng)功能,并在Android4.4平臺(tái)上采用Java語(yǔ)言編程實(shí)現(xiàn)了雙以太網(wǎng)IP地址設(shè)置軟件。經(jīng)過(guò)大量測(cè)試,采用靜態(tài)IP地址或自動(dòng)獲取IP地址方式,宿主機(jī)和有線通信終端以太網(wǎng)1、以太網(wǎng)2之間均能相互通信,無(wú)丟包現(xiàn)象。

本文采用的方法簡(jiǎn)單易行、高效快速,能夠較好地解決嵌入式硬件平臺(tái)多以太網(wǎng)接口的設(shè)計(jì)問(wèn)題,為Android平臺(tái)多以太網(wǎng)接口的IP地址設(shè)置提供了有效的擴(kuò)展方法。在以后的工作中,可根據(jù)實(shí)際需要設(shè)計(jì)兩個(gè)以上的以太網(wǎng)接口,并進(jìn)一步測(cè)試多以太網(wǎng)接口的可靠性和穩(wěn)定性。

參考文獻(xiàn):

[1] 文波,周淵平.基于Android的MT8880芯片的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2016,35(21): 88-92.

[2] 杜奇才,鄧誠(chéng)剛,劉熒,等.基于Android平臺(tái)的VoIP設(shè)計(jì)實(shí)現(xiàn)[J].微處理機(jī),2017(2):41-45.

[3] 王燁.多媒體技術(shù)環(huán)境下嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)研究[J].計(jì)算機(jī)測(cè)量與控制,2017, 25(4): 91-95.

[4] 閻旭鵬.嵌入式計(jì)算機(jī)技術(shù)及其應(yīng)用的探討[J].信息與電腦:理論版,2016(17): 73-74.

[5] 陸少鵬,周淵平.基于Android的通訊錄實(shí)時(shí)同步功能[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017(5): 257-261.

[6] 程傳旭,關(guān)娜.基于安卓系統(tǒng)的船聯(lián)網(wǎng)信息終端的設(shè)計(jì)[J]. 艦船科學(xué)技術(shù),2017,39(10): 146-148.

[7] 申鴻燁,于維海. Android網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)安全架構(gòu)的相關(guān)研究[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(5): 114-115.endprint

猜你喜歡
按鈕設(shè)置
這些按鈕能隨便按嗎?
哪個(gè)是門鈴真正的按鈕
當(dāng)你面前有個(gè)按鈕
中隊(duì)崗位該如何設(shè)置
7招教你手動(dòng)設(shè)置參數(shù)
死循環(huán)
本刊欄目設(shè)置說(shuō)明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
內(nèi)心不能碰的按鈕
艦船人員編制的設(shè)置與控制
主站蜘蛛池模板: 日韩毛片免费视频| 国产高清在线精品一区二区三区 | 久久黄色一级片| 制服丝袜无码每日更新| 99re视频在线| 自拍欧美亚洲| 国产97公开成人免费视频| 欧美a√在线| 激情视频综合网| 亚洲第一网站男人都懂| 国产精品三级专区| 国产精品永久久久久| 国产毛片高清一级国语| 在线免费观看AV| 国产丝袜一区二区三区视频免下载| a欧美在线| 农村乱人伦一区二区| 中文无码精品a∨在线观看| 亚洲国产午夜精华无码福利| 中国精品久久| 日韩在线1| 国产青榴视频在线观看网站| 国产精品私拍在线爆乳| 高清无码一本到东京热| 亚洲人免费视频| 日韩a级片视频| 好吊色国产欧美日韩免费观看| 国产成人永久免费视频| 国产福利观看| 日本免费a视频| 国产免费人成视频网| 在线无码九区| 成人午夜在线播放| 精品欧美一区二区三区久久久| 自拍中文字幕| 青青青国产免费线在| 亚洲免费黄色网| 国产麻豆另类AV| 又黄又爽视频好爽视频| 伊人欧美在线| 在线观看视频99| 99re视频在线| 无码免费试看| 亚洲成人黄色网址| 成年av福利永久免费观看| 自拍亚洲欧美精品| 久久久久夜色精品波多野结衣| 亚洲色图另类| 伊人久久青草青青综合| 国产免费a级片| 熟女日韩精品2区| 在线免费a视频| 亚洲美女一区| 亚洲黄色高清| 精品久久香蕉国产线看观看gif| 欧美一区福利| 国产日产欧美精品| 18禁黄无遮挡网站| 日韩成人在线一区二区| 91精品国产一区自在线拍| 亚洲女人在线| 日韩精品久久久久久久电影蜜臀| 精品久久国产综合精麻豆| 无码高潮喷水专区久久| 99这里只有精品6| 1769国产精品视频免费观看| 免费播放毛片| 91麻豆国产精品91久久久| 67194在线午夜亚洲| 日韩精品少妇无码受不了| 不卡无码网| 免费国产在线精品一区| 色综合五月| 欧美日本二区| 亚洲免费播放| 毛片视频网址| 亚洲人成高清| 蜜芽国产尤物av尤物在线看| 亚洲一区免费看| 国产女人在线| 日韩人妻少妇一区二区| 国产精品片在线观看手机版|