8/27/2011 3:28:33 AM

 

 

 

 

8/27/2011 3:28:33 AM

hw

ANDROID QEMUD SERVICES

The docs/ANDROID-QEMUD.TXT document describes how clients running in the
emulated system can communicate with the emulator through the 'qemud'
multiplexing daemon.

This document lists all services officially provided by the emulator to
clients. Each service is identified by a unique name. There is no provision
for versioning. Instead, if you need new features, create a new service
with a slightly different name and modify clients to use it in the system
image.


"gsm" service:
--------------

   The GSM service provides a communication channel where GSM/GPRS AT commands
   can be exchanged between the emulated system and an emulated modem.

   The messages consist in un-framed character messages as they appear in a
   regular AT command channel (i.e. terminated by \r\n most of the time).

   There can be only 1 client talking to the modem, since the AT command
   protocol does not allow for anything more complex.

   Implementation: telephony/modem_driver.c
   Since:          SDK 1.0
  
  
  
  

"gps" service:
--------------

  The GPS service is used to broadcast NMEA 0183 sentences containing fix
  information to all clients. The service doesn't listen to clients at all.

  All sentences are un-framed and end with a \n character.

  Implementation: android/gps.c
  Since:          SDK 1.0


"hw-control" / "control" service:
---------------------

  This service is named "control" in 1.0 and 1.1, and "hw-control"
  in 1.5 and later releases of the SDK.

  This service is used to allow the emulated system to control various aspects
  of hardware emulation. The corresponding clients are in
  hardware/libhardware_legacy in the Android source tree.

  All messages use the optional framing described in ANDROID-QEMUD.TXT.
  Only one client can talk with the service at any one time, but clients
  quickly connect/disconnect to the service anyway.

  Supported messages are:

    1/ Client sends "power:light:brightness:<lightname>:<val>", where
       <lightname> is the name of a light and <val> is an decimal value
       between 0 (off) and 255 (brightest). Valid values for 'light' are:

            lcd_backlight
            keyboard_backlight
            button_backlight

       Currently, only 'lcd_backlight' is supported by the emulator.
       Note that the brightness value doesn't scale linearly on physical
       devices.

    2/ Client sends "set_led_state:<color-rgb>:<on-ms>:<off-ms>" where
       <color-rgb> is an 8-hexchar value describing an xRGB color, and
       <on-ms> and <off-ms> are decimal values expressing timeout in
       milliseconds.

       This is used to modify the color of the notification LED on the
       emulated phone as well as provide on/off timeouts for flashing.

       cCrrently unsupported by the emulator.

    3/ Client sends "vibrator:<timeout>", where <timeout> is a decimal value.
       used to enable vibrator emulation for <timeout> milli-seconds.

       Currently unsupported by the emulator.


  Implementation: android/hw-control.c
  Since:          SDK 1.0


"sensors" service:
------------------

  This service is used for sensor emulation. All messages are framed and the
  protocol is the following:

    1/ Clients initially sends "list-sensors" and receives a single string
       containing a decimal mask value. The value is a set of bit-flags
       indicating which sensors are provided by the hardware emulation. The
       bit flags are defined as:

         bit 0:   accelerometer
         bit 1:   compass
         bit 2:   orientation
         bit 3:   temperature

    2/ Client sends "set-delay:<delay-ms>", where <delay-ms> is a decimal
       string, to set the minimum delay in milliseconds between sensor event
       reports it wants to receive.

    3/ Client sends "wake", the service must immediately send back "wake" as
       an answer. This is used to simplify parts of the client emulation.

    4/ Client sends "set:<sensor-name>:<flag>", where <sensor-name> is the
       name of one of the emulated sensors, and <flag> is either "0" or "1".
       This is used to enable or disable the report of data from a given
       emulated sensor hardware.

       the list of valid <sensor-name> values is the following:

           acceleration      : for the accelerometer
           magnetic-field    : for the compass
           orientation       : for the orientation sensor
           temperature       : for the temperature sensor


    5/ If at least one of the emulated sensors has been enabled with
       "set:<name>:1", then the service should broadcast periodically the
       state of sensors.

       this is done by broadcasting a series of framed messages that look
       like:

           acceleration:<x>:<y>:<z>
           magnetic-field:<x>:<y>:<z>
           orientation:<azimuth>:<pitch>:<roll>
           temperature:<celsius>
           sync:<time_us>

       Note that each line, corresponds to an independent framed message.
       Each line, except the last one, is optional and should only be
       produced if the corresponding sensor reporting has been enabled
       through "set:<name>:1".

       <x>, <y>, <z>, <azimuth>, <pitch>, <roll> and <celsius> are floating
       point values written as strings with the "%g" printf formatting option.

       The last 'sync' message is required to end the broadcast and contains
       the current VM clock time in micro-seconds. The client will adjust it
       internally to only care about differences between sensor broadcasts.

       If reporting is disabled for all sensors, no broadcast message needs
       to be sent back to clients.


  Implementation: android/hw-sensors.c
  Since:          SDK 1.5 (cupcake)


"boot-properties" service:
--------------------------

  This service is used to set system properties in the emulated system at
  boot time. It is invoked by the 'qemu-props' helper program that is invoked
  by /system/etc/init.goldfish.rc. All messages are framed and the protocol
  is the following:

  1/ Clients sends the 'list' command

  2/ Service answers by listing all system properties to set. One per
     message with the following format:

        <property-name>=<property-value>

     Note that <property-value> is not zero-terminated.


  3/ After sending all the properties, the service force-closes the
     connection.

  Implementation: android/boot-properties.c
  Since:          SDK 1.XXX (donut)

 

 

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值