![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 80
xnwyd
这个作者很懒,什么都没留下…
展开
-
如何在Android下使用JNI
1.引言我们知道,Android系统的底层库由c/c++编写,上层Android应用程序通过Java虚拟机调用底层接口,衔接底层c/c++库与Java应用程序间的接口正是JNI(JavaNative Interface)。本文描述了如何在ubuntu下配置AndroidJNI的开发环境,以及如何编写一个简单的c函数库和JNI接口,并通过编写Java程序调用这些接口,最终运行在模拟器上的过程原创 2011-12-20 09:22:15 · 115188 阅读 · 6 评论 -
飞思卡尔IMX6处理器的GPIO配置方式
在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样:#define MX6Q_PAD_GPIO_19__GPIO_4_5 \ (_MX6Q_PAD_GPIO_19__GPIO_4_5 | MUX_PAD_CTRL(NO_PAD_CTRL))其中_MX6Q_PAD_GPIO_19__GPIO_4_5定义原创 2013-06-06 20:46:41 · 34329 阅读 · 3 评论 -
基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试
1 概述本次任务是在飞思卡尔i.MX 6Quqd Sabrelite开发板上调试触屏驱动,触屏芯片是Goodix的gt828芯片,触屏接口是I2C。操作系统:android 4.0.4内核版本:3.0.15 2 调试步骤2.1 硬件连接2.1.1 开发板硬件接口开发板已提供独立的接口用于触屏,其示意图如下: 它提供了一原创 2013-06-20 11:50:18 · 12935 阅读 · 7 评论 -
基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
一、概述 1、 飞思卡尔 imx6的显示屏驱动架构: 2、目标: 因sabrelite开发板本身已提供LVDS接口,目标屏幕是LG的LP101WX1-SLN2,其主要参数为:分辨率:1280*800色彩:18位色彩数:262K时钟频率:69.3M Hz 二 移植过程1、首先把屏幕的接口接到sabrel原创 2013-06-04 17:13:02 · 33299 阅读 · 12 评论 -
飞思卡尔i.MX 6Quad Android 4.0.4的3G驱动移植
1 概述平台:freescale i.MX 6Quad 4核开发板Sabrelite操作系统:Android 4.0.4内核:3.0.153G模块:中兴MG3732和UbloxLISA-U130 2 中兴MG3732模块移植2.1 准备准备一张可用的联通3G卡,放入SIM卡卡槽,接着把中兴MG3732开发板通过usb连接到主板上。原创 2013-07-26 16:58:07 · 7860 阅读 · 0 评论 -
飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植
1 概述平台:freescale i.MX 6Quad 4核开发板MCIMX6Q-SDB(不带屏幕)操作系统:Android 4.2.2_1内核:3.0.35显示屏:LG的LP101WX1-SLN2显示屏参数:分辨率1280*800,色彩18位,色彩数262K,时钟频率69.3M Hz接口:LVDS0 2 移植步骤2.1 硬件连接显原创 2013-09-14 09:13:54 · 28423 阅读 · 0 评论 -
飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植
1 概述平台:freescale i.MX 6Quad 4核开发板Sabre-sd(不带屏幕)操作系统:Android 4.2.2_r1(代码补丁为android_jb4.2.2_1.1.0-ga_source)内核:3.0.353G模块:中兴MG3732和UbloxLISA-U130 2 中兴MG3732模块移植2.1 准备准备一张可用的原创 2013-09-14 09:27:18 · 8815 阅读 · 2 评论 -
android 源码下载
http://blog.csdn.net/liangxiaozhang/article/details/19543261http://www.cnblogs.com/kobe8/p/3990297.html原创 2014-12-02 18:40:29 · 944 阅读 · 0 评论 -
几种序列化库
1.google protocal buffer:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html2.Google FlatBuffer:http://google.githu原创 2015-01-11 16:33:56 · 3308 阅读 · 0 评论 -
Android App层通过JNI从驱动获取Input Event
1 概述 尝试在App层直接读取驱动的Input Event,获取触屏事件(本文获取的是电磁笔触屏事件),而不通过Android的Input Framework. 2 架构3 实现3.1 JNI层共有以下几个文件: 3.1.1 input_pen.h 首先看input_pen.h #ifndef _INPUT_PEN_H原创 2014-12-29 11:13:47 · 12192 阅读 · 11 评论 -
ubuntu编译android 4.04源码的错误解决方法
在ubuntu 11.10或12.10 64位下编译android 4.04源码,出现的错误和解决方法如下:/****************************************************/错误::0:0: 错误: “_FORTIFY_SOURCE”重定义 [-Werror]解决方法:修改build/core/combo/HOST_linux-x8原创 2013-05-21 14:20:19 · 3607 阅读 · 2 评论 -
cannot find -lstdc++解决方案
今天在ubuntu12.10 64位下编译32位android 4.04源码时报错:/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.5.4/libstdc++.so when searching for -lstdc++/usr/bin/ld: skipping incompatible /usr/原创 2013-04-22 19:11:06 · 13910 阅读 · 1 评论 -
Android2.3.4陀螺仪移植
一 背景1.需求 陀螺仪硬件并非接在android cpu上,所以不存在陀螺仪驱动,而陀螺仪数据是通过用户空间的一个c程序传过来。2.思路 修改陀螺仪hal层,在hal层构建socket客户端,在数据源的c程序上构建socket服务端。一旦有数据,c程序通过socket发送数据到陀螺仪hal层,并上报。二 步骤1.把device/samsung/crespo原创 2012-08-02 18:26:32 · 7605 阅读 · 1 评论 -
如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
一准备工作1安装javasdk6(1)从jdk官方网站http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html下载jdk-6u29-linux-i586.bin文件。(2)执行jdk安装文件$chmod a+x jdk-6u29-linux-i586.bin原创 2011-12-20 09:40:41 · 4363 阅读 · 1 评论 -
如何在Android下使用Binder
1概述Binder是基于OpenBinder,在Android系统上使用的进程间通信机制。Binder基于Client-Server通信模式,本质上可以理解为它实现了Client对Server对象的远程调用。比如,有某个binder对象A位于Server中,该对象提供了一套函数用以实现对服务的请求,而在一个或多个Client中包含对象A的引用,Client通过该引用可以调用远端Se原创 2012-01-09 18:31:46 · 4467 阅读 · 1 评论 -
Android系统Gps分析(一)
1 GPS架构2 GPS分析2.1 头文件头文件定义在:hardware/libhardware/include/hardware/gps.h,定义了GPS底层相关的结构体和接口GpsLocationGPS位置信息结构体,包含经纬度,高度,速度,方位角等。/** Flags to indicate which values are原创 2012-01-13 14:49:17 · 48656 阅读 · 8 评论 -
如何在android的jni线程中实现回调
JNI回调是指在c/c++代码中调用java函数,当在c/c++的线程中执行回调函数时,会导致回调失败。其中一种在Android系统的解决方案是:把c/c++中所有线程的创建,由pthread_create函数替换为由Java层的创建线程的函数AndroidRuntime::createJavaThread。假设有c++函数:void *thread_entry(voi原创 2012-03-16 11:38:12 · 21456 阅读 · 8 评论 -
jni数组使用(一)
假设有这样一个java函数:public int Send(char buffer[],int length)这个函数需要调用c/c++函数int send(unsigned char *buf, int len)实现,那么用JNI该如何实现?首先分析java的参数char buffer[ ],它在jni中的对应类型为jcharArray,说明从java传到jni的参数类型原创 2012-03-16 10:37:52 · 17875 阅读 · 4 评论 -
android 2.3 gps移植杂记(一)
近期任务是把产品的gps适配到android2.3源码中,一般的移植做法是:从串口中读取gps nema数据,在gps硬件适配层(HAL)对数据进行解析并上报到Framework层。我的任务需求不同,对串口的读写操作统一由一个串口代理负责,gps只需与串口代理通信,获取nema数据。 概括来说,gps移植有以下几个工作:(1)在串口代理中实现socket进程通信服务端,负责把串口代理原创 2012-03-16 09:11:59 · 8528 阅读 · 4 评论 -
jni数组使用(二)
上一篇说到在java中调用c++函数中,如何使用jni数组。下面谈一谈在回调中如何使用jni数组。假如有一个java函数:public void Receive(char buffer[],int length)我们需要在c++中调用这个函数,在jni中该如何实现数组的转换?(本篇不涉及jni的回调函数的实现机制)实现如下:static void receive_callb原创 2012-03-16 10:48:22 · 6858 阅读 · 0 评论 -
Android 4.2充电画面关键代码分析
系统进入充电模式时,显示 充电画面,充电画面的代码在/system/core/charger/charger.c,下面对其关键代码进行分析1)结构体/*power_supply信息*/struct power_supply { /*链表节点*/ struct listnode list; /*power_supply名称,如rk-ac/rk-usb/rk-原创 2015-01-20 14:11:32 · 3041 阅读 · 0 评论