您的位置:华清远见教育科技集团 >> 新闻动态 >> Android资料 >> Android底层字符传递给上层应用举例  
 
Android底层字符传递给上层应用举例
分享到:

帧动画,是按顺序播放一组图像。帧动画有两个比较重要的属性需要注意,一个是android:oneshot属性,用于设置播放模式,是单次播放还是循环播放;一个是android:duration属性,用于设置每帧的持续时间,单位为毫秒。帧动画的资源文件位于res/anim文件夹下。

1、Android的硬件抽象层读取相应的串口设备的数据:

static int uart_read_drv(struct uart_control_device_t *dev, char *buf, int count)
    {
        int count1 = 0;
        count1 = read(fd, buf, count);
        if(count1 < 0)
        {
            perror("read");
        }
        return 0;
    }

2、 Android的JNI层经过回调之后,可以通过自定义的相应的结构体方法读取到硬件抽象层的数据,并反馈到上层:

static jchar uart_read(JNIEnv* env, jobject thiz) {
        char s_buf[100]={0};
        if (sUartDevice) {
            sUartDevice->uart_read_hal(sUartDevice, s_buf, 1);
        }else{
            LOGI("sUartDevice is null");
        }
        if (s_buf == 0)
        LOGI("JNI: Lost info");
        else
        {
            LOGI("***********JNI:info length is : %d", strlen(s_buf));
        }
        return s_buf[0];
    }

3、Android的JNI和上层函数的对应描述:

static const JNINativeMethod gMethods[] = {
    ….
    { "_uart_data_update",
        "()C",
        (void*)uart_read },
        ….
    };

4、Android的Framework层定义相应的本地接口方法:

private static native char _uart_data_update();

通过类的方法进行封装:
    public class Uart {
        static {
        System.loadLibrary("uart_runtime");
        Log.i("**********************Java Service", "loadLibrary sucess");
        }
        public Uart(){
            _init();
        }
        public char GpsDataUpdate() {
        char s = _uart_data_update();
            return s;
        }
        private static native boolean _init();
        private static native char _uart_data_update();
        }

}

5、.Java上层App进行调用,并获得数据:

static Uart uartuart = new Uart();
    char s = uartuart.GpsDataUpdate();

 更多相关文章

·Android帧动画实例详解
·Android 控件动画效果的实现
·Android中的四种补间动画
·Android开发中的人脸检测技术
·Android中如何实现图像浏览