android开发
MorTree
自渡,除了自渡,他人爱莫能助!
展开
-
15分钟学会使用Git和远程代码库
Git是个了不起但却复杂的源代码管理系统。它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作。让我们诚实一记吧:Git是复杂的,我们不要装作它不是。但我仍然会试图教会你用(我的)基本的Git和远程代码库干活的工作步骤,在15分钟内。工作步骤我会展示以下的步骤,通常能帮我独自在一台或多台机器上做项目。 创建一个远程的空代码库(在BitBucket上)转载 2015-05-18 13:43:42 · 309 阅读 · 0 评论 -
LINUX之块设备整理(二) EMMC 驱动,emmc驱动
EMMC 驱动,emmc驱动转载来源:http://www.bkjia.com/Androidjc/944793.html 块设备是Linux最复杂的设备之一,但是作为固执于知其然的Geek,我们总会把代码翻个遍,把道理弄个透。当然了,快速地学习一种新的东西,方法是最重要的,个人觉得: 内核当中 MMC/SD 卡驱动程序构架是学习EMMC 驱动程序的重点,只有理解转载 2016-02-27 11:51:40 · 10555 阅读 · 1 评论 -
I2C-资料整理
1.I2C协议 2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(multimastering),任何时间点只能有一个主控。 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0. 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datash转载 2016-02-22 10:24:46 · 797 阅读 · 0 评论 -
android ndk编译,方法找不到,collect2: ld returned 1 exit status
这两天用NDK编译SO库,总是报这个错:/0/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armea原创 2016-01-14 16:31:15 · 3823 阅读 · 0 评论 -
I2C-资料整理
对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置。今天,我们就随便聊聊这个I2C协议。 I2C协议中最重要的一点是I2C地址。这个地址有7位和10位两种形式。7位能够表示127个地址,而在实际使用中基本上不会挂载如此多的设置,所以很多设备的地址都采用7位,所以本文接下来的说明都是基于此。转载 2016-02-22 10:17:08 · 1542 阅读 · 0 评论 -
高通8X16电池BMS算法(一)
最近一直在搞电源管理相关内容,之前是8610的bms,现在8916的bms,发现两者还是有点区别的,8916把对last_ocv_uv的估值算法分装成执行文件,作为服务一直运行。电源管理方面,应该是android驱动开发的一大难点,主要涉及的方面多,如充、放电、休眠唤醒等。这一部分主要讲BMS相关的一些基本概念。电池这一块刚开始入手时,感觉很难,很复杂,完全不知道如何入手,后来搞久了,才发现,原创 2016-06-06 22:07:22 · 6375 阅读 · 0 评论 -
高通8X16的TP笔记(一)
TP触摸屏,应该是驱动开发中比较简单并且适合新手入手的模块。不过虽然简单,但涉及到的内容还是比较多的,其中linux相关主要的机制:1. input 机制2. 中断、定时器3. I2C1.TP的原理:TP一般为电容或为电阻屏,不过现在基本上都是电容屏,可能一些WINCE的设备还会用电阻屏,但android的基本现在为电容屏,且多点触摸和手套触摸都集成在TP的IC中。当用户触摸电容屏原创 2016-06-05 19:54:29 · 2795 阅读 · 0 评论 -
高通8X16的TP笔记(二)
上一篇主要讲的与TP相关的知识点,讲这个主要是,你对这一模块有个基本的概念,知道其工作原理,这样在实际开发过程中,你才知道怎么去写起的驱动,碰到问题时,出现在哪一块,该怎么去解决。 这一篇,主要根据代码来讲上一篇涉及到的相关机制。TP的连线很简单,一路I2C,一根中断线,VCC、GND,reset。1. TP主要相关demo:驱动demo:\kernel\drivers\in原创 2016-06-05 21:56:48 · 3853 阅读 · 0 评论 -
高通8X16电池BMS算法(二)
上一篇主要讲电池相关的一些知识,上节忘记讲了,电池一般分为电量计电池和非电流计电池,电量计电池,就不需要用pmu8916的IC,当然这只是只,不需要BMS来计算soc,而jni层也需要读取电流计的电池相关属性。这一节主要是根据代码进行相关的分析。1. 先看probe的代码:static int qpnp_vm_bms_probe(struct spmi_device *spmi){原创 2016-06-13 00:31:02 · 5375 阅读 · 0 评论 -
Android 系统安装 apk 时解压 so 的逻辑问题
Android 系统安装 apk 时解压 so 的逻辑问题0X0 前言在 Android 系统中,当我们安装apk文件的时候,lib 目录下的 so 文件会被解压到 app 的原生库目录,一般来说是放到 /data/data//lib 目录下,而根据系统和CPU架构的不同,其拷贝策略也是不一样的,在我们测试过程中发现不正确地配置了 so 文件,比如某些 app 使用第三方的 so转载 2016-07-01 17:41:32 · 7568 阅读 · 0 评论 -
android5.1 install_apk 笔记
最近在平台上,发现在装载apk的过程中,出现很多比较严重的bug.例如,装载一些老版本的apk,发现装载过程中,设备从android系统重启,或者安装后无法使用,发现data/应用下的arm目录下,so库的后缀发生改变,而且出错后,导致很严重的一些bug,比如,卡顿,无法横屏显示等.故仔细研究一下android装载apk的机制.先看一下,adb install XXXX的过程,分析一下主要的方原创 2016-07-04 14:50:40 · 2925 阅读 · 0 评论 -
Recovery简介
Recovery简介Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分转载 2016-10-25 09:00:00 · 582 阅读 · 0 评论 -
linux 块设备-整理(一)
1. 基本概念: linux设备驱动开发详解(宋宝华):字符设备与块设备 I/O 操作的不同如下。(1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。大多数设备是字符设备,因为它们不 需要缓冲而且不以固定块大小进行操作。(2)块设备对于 I/O 请求有对应的缓冲区,因此它们可以选择以什么顺序进行响应,字符设备无须缓冲且被直接读写 。对于存储设备而言调整读写的顺序原创 2016-03-03 14:39:55 · 3859 阅读 · 0 评论 -
Android OTA在线升级一(架构分析)
http://blog.csdn.net/huryjiang/article/details/75896251、前言 OTA(Over-the-Air Technology)空中下载技术。是通过移动通信(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用,使得移动通信不仅可以转载 2015-12-09 11:41:37 · 3414 阅读 · 0 评论 -
Android OTA在线升级二
http://lhc180.blog.51cto.com/316940/757347 Android OTA空中升级的文档不少。但是多是介绍原理的和分析代码的。原理我就不说了。这里记录一下我在项目中实现的工作,和问题总结。工作流程: update.xml文件放在服务器上,当客户端请求的参数正确时,返回相应的信息。up转载 2015-12-09 11:45:11 · 1337 阅读 · 2 评论 -
android jni常用数据类型的记录
感觉最近工作中,经常需要用到jni,jni是项目开发中经常用到的一种机制,比较便捷,主要目的是,实现应用层调用底层驱动层的方法。最基本的一些关于jni的知识,就不再这边讲述,这边主要记录一些常用的代码架构。 1. 主要的代码基本框架:jni 我这边主要有两种经常用到的形式,形式一:#include #include #include #include #include原创 2015-05-18 13:51:56 · 501 阅读 · 0 评论 -
android之3g调试1
最近公司的高通的项目差不多结尾,而自己这边又没有什么事情,恰好之前的客户重新提出一些需求,所以重新开始做起三星平台的设备。最近一直都在调试和整理3G模块这一部分的内容。这篇主要是讲解调试的一些心得。作为驱动开发工程师,我们一般会先从项目经理了解了解该模块的需求,以及供应商提供相应的资料和代码,另一方面,需要从硬件工程师那里拿到电路图。一般对于一个新的模块,我不会从提供的代码开始入手,而原创 2015-07-08 22:10:06 · 653 阅读 · 0 评论 -
程序员应该读的六本书
程序员应该读的六本书原文:http://javarevisited.blogspot.com/2014/09/top-6-books-to-learn-programming-coding.html译文:http://droidyue.com/blog/2015/07/04/six-books-every-programer-must-read/译者: androidyue转载 2015-07-09 23:17:28 · 826 阅读 · 0 评论 -
android 关于mk如何引用其它so库
通常,开发android的软件,常常需要编译so库,然编译的这个so库,需要调用多个其它的so库。这里主要记录一下,编译so库时,调用其它so库的mk,是怎么写的。这里讲的示例:需要编译出libtest3.so,它需要调用libtest1.so,libtest2.so1. 在android 源码下编译LOCAL_PATH:= $(call my-dir)include $(CLEA原创 2015-11-04 14:16:29 · 7715 阅读 · 0 评论 -
初入android驱动开发之网络设备以太网(一)
很久没写日志,主要最近工作比较繁忙,最近主要做以太网开发的。平台: 高通 ,android 4.3 ,linux 3.4.0这一部分,主要说一下,调试过程中用到的一些命令。以太网,是由usb转net出来的,主要在在deconfig中配出usb_net这个配置就可以。下面主要说的一些调试命令:1. netcfg 查看当前的网卡设备名及其相关信息:设备名 状态 IP原创 2015-10-27 10:03:12 · 4315 阅读 · 1 评论 -
android 证书签名命令
给升级包: java -Xmx2048m -jar signapk.jar -w testkey.x509.pem testkey.pk8 update.zip update_signed.zip给apk:java -jar signapk.jar platform.x509.pem platform.pk8 D:\ClockSetting.apk D:\Clo原创 2015-12-10 15:30:46 · 422 阅读 · 0 评论 -
Linux hrtimer分析--配置高精度模式
转自:http://blog.csdn.net/walkingman321/article/details/6151172本文介绍Linux2.6.29中,配置高精度模式的hrtimer与未配置高精度模式时行为的区别。本文暂不考虑高精度模式对Linux系统时钟中断的影响。 在没有配置高精度模式时,hrtimer的超时在系统时钟中断的轮循中检查,所以此时hrtimer的定转载 2015-12-29 13:54:10 · 1246 阅读 · 0 评论 -
git 打patch
具体的命令:打补丁的命令:git diff > xxx.patch和补丁的命令:patch -p1原创 2015-12-29 16:27:30 · 519 阅读 · 0 评论 -
Java中byte与16进制字符串的互相转换
java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占转载 2016-01-06 16:28:58 · 485 阅读 · 0 评论 -
JNI ERROR (app bug): attempt to use stale local reference 0x31900019(Android ICS(4.0+) JNI局部应用的变化)
本文转载自:链接地址感谢原文作者 K-Res的辛勤劳动 和 无私分享。总结一下,解决方案:将 AndroidManifest中的 minSdkVersion设置小于 14 ;如果设置 targetSdkVersion的话,也设置小于14,或者直接不设置。 具体原理解释,请详细看下文。译序:这篇文章的内容实际是在我发现一个转载 2016-01-08 17:39:26 · 3819 阅读 · 0 评论 -
ubuntu 12.04 vim gedit中文乱码解决
ubuntu 12.04 vim gedit中文乱码解决 添加中文字符编码:$sudo vim /var/lib/locales/supported.d/local#添加下面的中文字符集zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 GB18030使其生效:$sudo dpkg-re转载 2016-01-09 09:22:04 · 569 阅读 · 0 评论 -
android安装内核module,提示Required key not available
来源:linux网站 作者:lewif最近在调试一个驱动的时候,用insmod加载.ko的时候,提示Required key not available,第一反应是签名有问题,内核模块也开始使用类似apk的签名了吗?查资料后果然是这样。这个问题可以说不算是android的问题,而应该是linux系统的问题,android本身就是个linux系统。下来一步一步转载 2016-12-30 10:23:18 · 690 阅读 · 0 评论