1、开发Android应用程序来使用硬件访问服务

~/android-2.3_r1/packages/experimental/Freg

----AndroidManifest.java

----Android.mk

----src

----shy/luo/freg

----Freg.java

----res

----layout

----main.xml

----values

----string.xml

----drawable

----icon.png


Freg.java

package shy.luo.freg;import android.app.Activity;import android.os.ServiceManager;import android.os.Bundle;import android.os.IFregService;import android.os.RemoteException;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class Freg extends Activity implements OnClickListener {private final static String LOG_TAG = "shy.luo.freg.FregActivity";private IFregService fregService = null;private EditText valueText = null;private Button readButton = null;private Button writeButton = null;private Button clearButton = null;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);fregService = IFregService.Stub.asInterface(ServiceManager.getService("freg"));                valueText = (EditText)findViewById(R.id.edit_value);        readButton = (Button)findViewById(R.id.button_read);        writeButton = (Button)findViewById(R.id.button_write);        clearButton = (Button)findViewById(R.id.button_clear);readButton.setOnClickListener(this);writeButton.setOnClickListener(this);clearButton.setOnClickListener(this);                Log.i(LOG_TAG, "Freg Activity Created");    }        @Override    public void onClick(View v) {    if(v.equals(readButton)) {try {    int val = fregService.getVal();    String text = String.valueOf(val);    valueText.setText(text);} catch (RemoteException e) {Log.e(LOG_TAG, "Remote Exception while reading value from freg service.");}    }    else if(v.equals(writeButton)) {try {    String text = valueText.getText().toString();    int val = Integer.parseInt(text);fregService.setVal(val);} catch (RemoteException e) {Log.e(LOG_TAG, "Remote Exception while writing value to freg service.");}    }    else if(v.equals(clearButton)) {    String text = "";    valueText.setText(text);    }    }}


main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <LinearLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="vertical"     android:gravity="center">    <TextView android:layout_width="wrap_content"       android:layout_height="wrap_content"         android:text="@string/value">    </TextView>    <EditText      android:layout_width="fill_parent"        android:layout_height="wrap_content"         android:id="@+id/edit_value"        android:hint="@string/hint">    </EditText>    </LinearLayout>     <LinearLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="horizontal"     android:gravity="center">    <Button     android:id="@+id/button_read"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/read">    </Button>    <Button     android:id="@+id/button_write"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/write">    </Button>    <Button     android:id="@+id/button_clear"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/clear">    </Button>    </LinearLayout></LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">Freg</string>    <string name="value">Value</string>    <string name="hint">Please input a value...</string>    <string name="read">Read</string>    <string name="write">Write</string>    <string name="clear">Clear</string></resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="shy.luo.freg"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".Freg"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest> 

Android.mk

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := Freginclude $(BUILD_PACKAGE)

2、编译

编译成apk:

生成的Freg.apk位于out/target/product/generic/system/app中。


打包:


最后把Freg.apk重新打包进入system.img,位于out/target/product/gerneric中。


运行:



结果如下:

开发Android应用程序来使用硬件访问服务_第1张图片

更多相关文章

  1. Android利用Logcat监听应用程序本身被卸载
  2. 【Android】遍历系统中所有应用程序
  3. Android应用程序键盘(Keyboard)消息处理机制分析(19)
  4. android 怎样通过暗码启动应用程序
  5. Android核心分析 之三:手机之硬件形态

随机推荐

  1. 210323 CSS 盒子模型 字体图标 定位
  2. 万岳教育直播源码,教育app源码,教育系统
  3. 固定定位:模态框
  4. 苹果Mac强大的思维导图工具:SimpleMind
  5. 如何选择好的运维服务商?
  6. 红帽认证培训(红帽认证视频教程、在线课程
  7. 采用XLL封装工作表函数的演示,确保工作表
  8. 3.18 部署具有嵌入式Platform Services C
  9. 多区域 OSPF 综合实验
  10. aelf技术——解除区块链商业化痛点的一剂