android应用层程序直接与framework…

来源:互联网 发布:蝴蝶机夹胸 知乎 编辑:程序博客网 时间:2024/06/04 19:55

AndroidManifest.xml

<?xml version="1.0"encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="mobile.socket"
   android:sharedUserId="android.uid.system"
   android:versionCode="1"
   android:versionName="1.0" >

   <uses-sdk android:minSdkVersion="10"/>

   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name" >
       <activity
           android:name=".MySocketActivity"
           android:label="@string/app_name" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN"/>

               <categoryandroid:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
   </application>

</manifest>

layout文件

<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:gravity="center"
   android:orientation="vertical" >

   <LinearLayout
       android:id="@+id/linearLayout1"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:gravity="center" >

       <TextView
           android:id="@+id/textView1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/nameStr"
           android:textAppearance="?android:attr/textAppearanceLarge"/>

       <TextView
           android:id="@+id/textView2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/colon"
           android:textAppearance="?android:attr/textAppearanceLarge"/>

       <EditText
           android:id="@+id/editText1"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_marginLeft="10dp"
           android:layout_marginRight="10dp"
           android:hint="@string/name" >
       </EditText>
   </LinearLayout>

   <LinearLayout
       android:id="@+id/linearLayout2"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">

       <TextView
           android:id="@+id/textView3"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/sexStr"
           android:textAppearance="?android:attr/textAppearanceLarge"/>

       <TextView
           android:id="@+id/textView4"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/colon"
           android:textAppearance="?android:attr/textAppearanceLarge"/>

       <Spinner
           android:id="@+id/spinner1"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:entries="@array/sex" />
   </LinearLayout>

   <LinearLayout
       android:id="@+id/linearLayout3"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">

       <TextView
           android:id="@+id/textView5"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/result"
           android:textAppearance="?android:attr/textAppearanceLarge"/>

       <TextView
           android:id="@+id/textView6"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/colon"
           android:textAppearance="?android:attr/textAppearanceLarge"/>

       <TextView
           android:id="@+id/tvResult"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/empty"
           android:textAppearance="?android:attr/textAppearanceLarge"/>
   </LinearLayout>

   <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:onClick="sendName"
       android:text="@string/send" />

</LinearLayout>

Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under,src)
LOCAL_PACKAGE_NAME := MySocket
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
include $(LOCAL_PATH)/htfsk/Android.mk

主要是最后这行,包涵了脚本的mk文件。

总结:经过以上三个步骤本实例就基本完成了,源码工程MySocket我已经上传至http://download.csdn.net/detail/goleftgoright/4183596

这是原来的源码工程,修改过的代码丢在上面了。

工程MySocket使用步骤:

1、配置init.rc。

2. 在vendor/cm/config/common.mk里加上

PRODUCT_PACKAGES += \
   android-file-explorer \
    AnBackup\
    AnromAccount\
    AnromLuncher\
    AnromMarket\
    AnromSandBox\
    FileExplorer\
    MiPan\
    Superuser\
   SystemUpdater \
   TelephoneRecorder \
   PermissionManager \
    MySocket\                只加了这一行
   ProfileManager

3、将工程MySocket拷贝到android源码的/packages/apps目录下编译。

编译成功后就可以刷机了,手机开机启动后可以看到 /dev/socket目录下服务端Socket已经成功启动了,如下图:
android应用层程序直接与framework层socket通信(转载加修改)(二)


再来试一下
0 0
原创粉丝点击