【问题标题】:How to write an Android application to do sysfs read/write.?如何编写一个 Android 应用程序来进行 sysfs 读/写。?
【发布时间】:2013-07-15 04:20:39
【问题描述】:

我想编写一个带有 UI Button Read/Write 的 Android 应用程序,它执行 sysfs readsysfs write

我找到了以下 java.io.RandomAccessFile 的示例代码。

    package com.tutorialspoint;

    import java.io.*;

    public class RandomAccessFileDemo {

       public static void main(String[] args) {
          try {
             // create a new RandomAccessFile with filename test
             RandomAccessFile raf = new RandomAccessFile("c:/test.txt", "rw");

             // write something in the file
             raf.writeUTF("Hello World");

             // set the file pointer at 0 position
             raf.seek(0);

             // read the first byte and print it
             System.out.println("" + raf.read());

             // set the file pointer at 4rth position
             raf.seek(4);

             // read the first byte and print it
             System.out.println("" + raf.read());
          } catch (IOException ex) {
             ex.printStackTrace();
          }

       }
    }

谁能告诉我如何使用 Android sdk 构建这段代码?

【问题讨论】:

  • 您有什么问题?编写 Android 应用程序?创建按钮?读/写文件?
  • 我习惯于linux驱动程序编程。我已将 sysfs 导出到用户空间。我想在用户空间 android 应用程序中访问它。我是 android 应用程序世界的新手。我不想从编写 android 应用程序的通用链接开始。如果我得到一个模板或骨架存根来开始我的工作会更好
  • 请有人指点一下,比如..这个应用程序从哪里开始。
  • 您需要什么帮助?打开文件?从文件中读取?这就是来自用户空间的“sysfs read”。
  • 因为我是 android java 应用程序开发的新手。我需要一个简单的 android java 应用程序,它可以让我执行 cat 和 echo 让我们在 shell 提示符下执行的操作。

标签: android android-ndk linux-kernel linux-device-driver apk


【解决方案1】:

首先,确保您拥有该 sysfs 节点的权限(如果您正在开发用户应用程序,通常您没有)。

其次,我想说的是,通常你不必直接从 Android 应用程序与 sysfs 节点对话。在应用程序下面有 Android 框架和 HAL 级别,它们为你完成了所有的抽象。

由于不确定您要做什么,这里是我从 Android LightsService 获取的一个示例,它直接与 sysfs 节点对话,这可能对您有所帮助。

216        private static final String FLASHLIGHT_FILE = "/sys/class/leds/spotlight/brightness";
...
236        try {
237                FileOutputStream fos = new FileOutputStream(FLASHLIGHT_FILE);
238                byte[] bytes = new byte[2];
239                bytes[0] = (byte)(on ? '1' : '0');
240                bytes[1] = '\n';
241                fos.write(bytes);
242                fos.close();
243            } catch (Exception e) {
244                // fail silently
245            }
246        }

【讨论】:

  • 是的。感谢那。我想要在 android sdk 中创建项目的所有步骤以及获取 apk。你介意也提供一下吗?
  • @kzs 我相信这类问题可以由谷歌来回答,而不是在这里。见这里http://developer.android.com/tools/sdk/eclipse-adt.html
猜你喜欢
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多