3为Tiny6410Android234系统添加Ethernet框架支持含去除状态栏信号图标及增加屏幕超时永不关屏选项.docx
- 文档编号:5691926
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:22
- 大小:165.28KB
3为Tiny6410Android234系统添加Ethernet框架支持含去除状态栏信号图标及增加屏幕超时永不关屏选项.docx
《3为Tiny6410Android234系统添加Ethernet框架支持含去除状态栏信号图标及增加屏幕超时永不关屏选项.docx》由会员分享,可在线阅读,更多相关《3为Tiny6410Android234系统添加Ethernet框架支持含去除状态栏信号图标及增加屏幕超时永不关屏选项.docx(22页珍藏版)》请在冰豆网上搜索。
3为Tiny6410Android234系统添加Ethernet框架支持含去除状态栏信号图标及增加屏幕超时永不关屏选项
为Tiny6410Android2.3.4系统添加Ethernet框架支持(含去除状态栏信号图标及增加屏幕超时“永不关屏”选项)bybenjaminwan
先分享一下修改后的图片
1.增加状态栏网络图标(有连接时才显示),去除信号图标
2.增加设置“以太网设置”选项
3.增加“从不待机”选项,对应的实际值是-1
友善之臂有提供了1个软件用于设置开发板的有线网络。
如果你因某些原因不想使用或不方便使用这个软件,本文讲述如何移植让系统框架支持以太网的设置(DHCP动态分配IP或手动静态设置IP)
主要是利用android-x86现成的Ethernet框架,添加到Tiny6410的android源码中,增加系统对Ethernet的支持。
本文所用的是友善Tiny64102011-11-16版本的Android源代码。
所有的修改都是基于此版本进行的。
如果你懒得修改,可以直接用附件中改好的代码直接覆盖,当然前提是你使用的开发板型号、源代码版本一样才行。
附件的内容仅供参考,除了增加Ethernet框架之外,还更改了一些默认设置。
==========================================================================================
先把友善android源代码解压放好
一、准备工具:
curl和repo
yuminstallcurl
curlhttps:
//dl->/bin/repo
chmoda+x/bin/repo
二、创建文件夹
mkdir/opt/FriendlyARM/mini6410/android/android-x86
cd/opt/FriendlyARM/mini6410/android/android-x86
三、全部源码太大,只下载相关部分源码,gingerbread-x86代表2.3版本的源码
repoinit-ugit:
//android--bgingerbread-x86
reposyncplatform/frameworks/base
reposyncplatform/packages/apps/Settings
四、移植framework部分(+号的行代表增加的内容,-号的行代表删除的内容)
源路径=/opt/FriendlyARM/mini6410/android/android-x86
目标路径=/opt/FriendlyARM/mini6410/android/Android-2.3.4
4.1.将源路径framework/base/ethernet复制到目标路径的framework/base/目录下
4.2.修改目标路径的framework/base目录下的Android.mk
vpn/java/android/net/vpn/IVpnService.aidl\
+ethernet/java/android/net/ethernet/IEthernetManager.aidl\
voip/java/android/net/sip/ISipSession.aidl\
4.3.将源路径文件frameworks/base/services/java/com/android/server/EthernetService.java复制到目标路径frameworks/base/services/java/com/android/server/目录下
4.4.修改目标路径framework/base/service/java/com/android/server目录下的ConnectivityService.java文件
import.wifi.WifiStateTracker;
+import.ethernet.EthernetStateTracker;
import.wimax.WimaxManagerConstants;
//-----------------------------------------------------------------------------------------
if(mNetAttributes[n.mType]!
=null){
Slog.e(TAG,"ErrorinnetworkAttributes-ignoringattempttoredefinetype"+
n.mType);
continue;
}
-if(mRadioAttributes[n.mRadio]==null){
+if((n.mType!
=ConnectivityManager.TYPE_ETHERNET)&&(mRadioAttributes[n.mRadio]==null)){//bybjw
Slog.e(TAG,"ErrorinnetworkAttributes-ignoringattempttouseundefined"+
"radio"+n.mRadio+"innetworktype"+n.mType);
continue;
}
mNetAttributes[n.mType]=n;
mNetworksDefined++;
}catch(Exceptione){
+Slog.e(TAG,"wrongdevexception"+e);//bybjw
//ignoreit-leavetheentrynull
}
//-----------------------------------------------------------------------------------------
wifiService.startWifi();
mNetTrackers[ConnectivityManager.TYPE_WIFI]=wst;
wst.startMonitoring();
break;
+caseConnectivityManager.TYPE_ETHERNET:
//bybjw
+if(DBG)Slog.v(TAG,"#########StartingEthernetService.");//bybjw
+EthernetStateTrackerest=newEthernetStateTracker(context,mHandler);//bybjw
+EthernetServiceethService=newEthernetService(context,est);//bybjw
+ServiceManager.addService(Context.ETHERNET_SERVICE,ethService);//bybjw
+mNetTrackers[ConnectivityManager.TYPE_ETHERNET]=est;//bybjw
+est.startMonitoring();//bybjw
+break;//bybjw
caseConnectivityManager.TYPE_MOBILE:
//-----------------------------------------------------------------------------------------
if(noMobileData){
if(DBG)Slog.d(TAG,"tearingdownWiMAXnetworksduetosetting");
mNetTrackers[netType].teardown();
}
break;
default:
//Slog.e(TAG,"TryingtocreateaDataStateTrackerforanunknownradiotype"+
//mNetAttributes[netType].mRadio);
4.5.将源路径framework/base/core/jni/android_net_ethernet.cpp复制到目标路径framework/base/core/jni/目录下
4.6.修改目标路径framework/base/core/jni/AndroidRuntime.cpp文件
externintregister_android_net_wifi_WifiManager(JNIEnv*env);
+externintregister_android_net_ethernet_EthernetManager(JNIEnv*env);
externintregister_android_security_Md5MessageDigest(JNIEnv*env);
//-----------------------------------------------------------------------------------------
REG_JNI(register_android_net_wifi_WifiManager),
+REG_JNI(register_android_net_ethernet_EthernetManager),
REG_JNI(register_android_nfc_NdefMessage),
4.7.修改目标路径framework/base/core/jni/Android.mk文件,添加ethernetJNI接口文件的编译项
android_net_wifi_Wifi.cpp\
+android_net_ethernet.cpp\
android_nio_utils.cpp\
4.8.修改目标路径framework/base/core/java/android/content/Context.java
publicstaticfinalStringWIFI_SERVICE="wifi";
+publicstaticfinalStringETHERNET_SERVICE="ethernet";
4.9.修改目标路径frameworks/base/core/java/android/provider/Settings.java
publicstaticfinalStringWIFI_ON="wifi_on";
+/**
+*Ethernetrelatedconfigurations
+*/
+publicstaticfinalStringETHERNET_ON="ethernet_on";
+publicstaticfinalStringETHERNET_MODE="ethernet_mode";
+publicstaticfinalStringETHERNET_IP="ethernet_ip";
+publicstaticfinalStringETHERNET_MASK="ethernet_netmask";
+publicstaticfinalStringETHERNET_DNS="ethernet_dns";
+publicstaticfinalStringETHERNET_ROUTE="ethernet_iproute";
+publicstaticfinalStringETHERNET_CONF="ethernet_conf";
+publicstaticfinalStringETHERNET_IFNAME="ethernet_ifname";
4.10.修改目标路径frameworks/base/core/java/android/app/ContextImpl.java
import.wifi.WifiManager;
+import.ethernet.IEthernetManager;//bybjw
+import.ethernet.EthernetManager;//bybjw
importandroid.nfc.NfcManager;
//-----------------------------------------------------------------------------------------
privatestaticWifiManagersWifiManager;
+privatestaticEthernetManagersEthernetManager;//bybjw
privatestaticLocationManagersLocationManager;
//-----------------------------------------------------------------------------------------
}elseif(WIFI_SERVICE.equals(name)){
returngetWifiManager();
+}elseif(ETHERNET_SERVICE.equals(name)){//bybjw
+returngetEthernetManager();//bybjw
}elseif(NOTIFICATION_SERVICE.equals(name)){
returngetNotificationManager();
//-----------------------------------------------------------------------------------------
returnsWifiManager;
}
+privateEthernetManagergetEthernetManager()//bybjw
+{
+synchronized(sSync){
+if(sEthernetManager==null){
+if(b==null){
+Log.w(TAG,"Errorgettingservicename:
"+ETHERNET_SERVICE);
+}
+IBinderb=ServiceManager.getService(ETHERNET_SERVICE);
+IEthernetManagerservice=IEthernetManager.Stub.asInterface(b);
+sEthernetManager=newEthernetManager(service,mMainThread.getHandler());
+}
+}
+returnsEthernetManager;
+}
privateNotificationManagergetNotificationManager(){
4.11.修改目标路径frameworks/base/core/res/res/values/config.xml
gid="id">wifi g>
+ gid="id">ethernet g>
gid="id">cdma_eri g>
//-----------------------------------------------------------------------------------------
+
五、移植packages部分
5.1.复制源路径packages/apps/Settings/src/com/android/settings/ethernet目录到目标路径packages/apps/Settings/src/com/android/settings/目录下;
5.2.复制源路径packages/apps/Settings/src/com/android/settings/EthernetSettings.java到目标路径packages/apps/Settings/src/com/android/settings/目录下;
5.3.复制源路径packages/apps/Settings/res/drawable-hdpi/ic_settings_ethernet.png到目标路径packages/apps/Settings/res/drawable-hdpi/目录下
5.4.复制源路径packages/apps/Settings/res/drawable-mdpi/ic_settings_ethernet.png到目标路径packages/apps/Settings/res/drawable-mdpi/目录下
5.5.复制源路径packages/apps/Settings/res/layout/eth_configure.xml到目标路径packages/apps/Settings/res/layout/目录下
5.6.复制源路径packages/apps/Settings/res/xml/ethernet_settings.xml到目标路径packages/apps/Settings/res/xml/目录下
5.7.修改目标路径文件packages/apps/Settings/res/values/strings.xml
+
--Ethernetconfigurationdialog-->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
5.8.修改目标路径packages/apps/Settings/res/values/arrays.xml
+
//-----------------------------------------------------------------------------------------
--Donottranslate.-->
--Donottranslate.-->
--Donottranslate.-->
--Donottranslate.-->
--Donottranslate.-->
--Donottranslate.-->
--Donottranslate.-->
+
--Donottranslate.-->
+
5.9.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Tiny6410Android234 系统 添加 Ethernet 框架 支持 去除 状态栏 信号 图标 增加 屏幕 超时 永不 选项
链接地址:https://www.bdocx.com/doc/5691926.html