- 博客(43)
- 资源 (57)
- 收藏
- 关注
转载 微信ANDROID客户端-会话速度提升70%的背后
背景打开会话速度慢在同一个会话有较多的历史消息下,各种查询,更新,删除等操作,速度明显下降。在会话内有较大量历史消息情况下,进入速度/刷新速度明显降低。分析阶段整个优化我们分2个阶段进行:第一阶段,针对历史记录较小的会话通过Android自带的trace工具分析,我们发现较大的耗时分布在进入会话的几个关键点:
2016-01-22 15:05:24 1155
转载 SnappyDB—Android上的NoSQL数据库
还是从需求出发。在开发App的时候,经常需要缓存一些数据,不至于每次打开App都是空的,需要从网络下载数据。例如新闻客户端,需要缓存上次打开的新闻。一般的做是使用SQLite数据库来保存数据,或者把数据序列化写到本地文件中。这两中方法,我在之前的项目中都用过。我先来说一下这两种方法的缺点:使用SQLite数据库保存: 对于保存缓存数据来说,这样做未免太重量级了,存取数据都比较麻烦。当然
2015-07-19 16:09:50 5247
原创 Android NDK编程浅入深出之--域和方法的操作
访问域 Java 有两类域:实例域和静态域。类的每个实例都有自己的实例域副本,而一个类所有实例共享一个静态域。如下程序:public class JavaClass{ /** 实例域 */ private String instanceField = "Instantce Field"; /** 静态域 */ private stat
2015-07-07 19:01:56 1528
原创 Android NDK编程浅入深出之--Android.mk
Android.mk是一个向Android NDK构建系统描述NDK项目的GUN Makefile片段。它是每一个NDK项目的必备组件。构建系统希望它出现在jni子目录中。
2015-07-05 13:20:04 4036
原创 Android Data Binding 技术
Data Binding即数据绑定,Data Binding 库实现在布局文件中实现数据绑定申明,使数据的变化引起视图的自动更新,减少了逻辑代码,在Android中可以很方便的实现MVVM的开发模式。
2015-06-28 00:21:46 9719 5
原创 Android jni编程浅入深出之-- 与原生代码通信
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信,JNI框架使得本地方法可以访问Java对象,就如同Java程序访问这些本地对象。本地方法可以创建Java对象,然后检查、使用这些对象执行任务。本地方法也可以检查并使用由Java程序创建的对象。
2014-08-24 22:05:04 1906
原创 Android NDK编程浅入深出之--了解NDK
Android NDK不是一个单独的工具;它是一个包含API、交叉编译器、链接程序、调试器、构建工具、文档和示例应用程序的综合工具集。
2014-08-24 22:02:47 1699
原创 Android Http POST文件上传之-----RFC1867协议
Android Http POST文件上传之RFC1867协议 Android POST方式上传文件,可以基于通过 RFC1867协议来实现。 RFC1867协议主要是在HTTP协议的基础上为INPUT标签增加了file属性,同时限定了Form的method必须为POST,ENCTYPE必须为multipart/form-data。 其它属性标签, <INPUT TYPE=file>标记可以有一个VALUE属性来指定默认的文件名 ,可以用“SIZE=宽,高”来指定SIZE属性 。
2014-08-06 14:20:38 5205
原创 Android 网络编程之---HttpClient 与 HttpURLConnection 共用cookie
HttpClient 与 HttpUrlConnection 是Android 中HTTP操作最常见的访问方式。在一个应用程序中有时候会用到这两种方式,如何能让他们共用Cookie,让客户端访问服务器保持Session进行通信。 针对httpClient 和HttpUrlConnection 获取和发送Cookie,主要是sessionID的共享。 httpClient获取及发送S
2014-05-03 22:21:44 11983
转载 用Gradle 构建你的android程序
前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目的用户指南全部看完, 让不会用gradle 的人也用gradle构建android项目,让打包(注意,打包和构建是两码事)多版本android不再痛苦。最后,题外话:珍惜生命,远离ant.
2014-03-19 14:38:01 3961
原创 浅析Android binder机制
linux下进程间通信 :管道,共享内存,信号量,socket等, java的主要进程间通信是RPC,RMI,CORBA,Socket等。 Binder作为Android系统进程间通信方式不同于上面传统的IPC,它有着自己的优势。Binder是基于CS(client-service)软件架构,Binder通信是同步,非异步的。 为什么选择 Binder
2014-01-11 00:19:45 1528
转载 Android图片处理(Matrix,ColorMatrix)
在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等。这些效果在android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果。下面将分别介绍这两个矩阵的用法和相关的函数。颜色矩阵android中可以通过颜色矩阵(ColorMatrix类
2013-07-21 23:11:41 1030
原创 安装Android Studio启动不了的原因
Win7 安装Android Studio启动不了的原因没有安装JDK的请安装JDK:安装之后再往下看在C:\windows\system32\ 目录下是有java的CMD 进入命令行,输入java 也是有正常反应的。在报错界面提示中,有一串英文,大意是,如果你确认你的Java SE Development Kit (JDK)已经安装,那么你需要去设置环境系统变
2013-05-16 16:15:02 1681
转载 Android系统系统升级过程分析之------update.zip包的制作
这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从我们上层开始选择system update到重启到Recovery服务,以及在Recovery服务中具体怎样处理update.zip包升级的
2013-05-06 08:03:46 2508
原创 Android设备驱动之——V4L2
Video for Linux Two V4L2的是V4L的第二个版本。原来的V4L被引入到Linux内核2.1.x的开发周期后期。Video4Linux2修正了一些设计缺陷,并开始出现在2.5.X内核。Video4Linux2驱动程序包括Video4Linux1应用的兼容模式,但实际上,支持是不完整的,并建议V4L2的设备使用V4L2的模式。现在
2012-05-08 11:55:50 15103 4
转载 V4L2 API Specification
Video for Linux Two API SpecificationRevision 0.24Michael H Schimek mschimek@gmx.at> Bill DirksHans VerkuilMartin RubliCopyright © 1999, 2000, 2001, 2002, 2
2012-05-07 09:38:42 28671 1
翻译 linux内核文档翻译之——V4L2-framework.txt
V4L2驱动框架概述=====================================这个文本文件讲述V4L2的框架所提供的各种结构和它们之间的关系.介绍------------由于硬件的复杂性v412驱动往往是非常复杂的: 大多数设备有多个IC,在/dev目录下有多个设备节点, 并也创建non-V4L2的设备,如DVB,ALSA,FB,I2C和input(IR)设备。
2012-05-03 16:13:34 11010 2
原创 Linux设备驱动之——PCI 总线
PCI总线概述 随着通用处理器和嵌入式技术的迅猛发展,越来越多的电子设备需要由处理器控制。目前大多数CPU和外部设备都会提供PCI总线的接口,PCI总线已成为计算机系统中一种应用广泛、通用的总线标准[1]。Linux因其开放源代码以及稳定的性能,越来越受到广大用户青睐。同时,基于Linux内核的嵌入式操作系统应用势头强劲,开发基于Li
2012-04-27 15:37:24 18139 2
转载 Linux设备驱动之——I2C总线
2 I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。 2、I2C总线驱
2012-04-23 14:37:31 28682 3
原创 Linux设备驱动之——serio总线
什么是总线 总线是处理器与一个或者多个设备之间的通道。在设备模型中所有的设备都是通过总线相连的。甚至那些内部的虚拟"平台"总线。总线可以互相插入,比如一个 USB 控制器通常是一个 PCI 设备。 linux系统中包含的总线有 i2c、ide、pci、pci express、platform、 pnp、 scsi、 serio、 usb等。
2012-04-19 15:10:53 10110 1
原创 Android 开发之 ---- 底层驱动开发(二)
Android 设备驱动(下) MTD 驱动 Flash 驱动通常使用 MTD (memory technology device ),内存技术设备。 MTD 的字符设备: /dev/mtdX 主设备号 90.
2012-03-21 19:34:54 15793 4
原创 Android 开发之 ---- bootloader (LK)
LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统。 LK 代码 在 bootable/bootloadler/lk 目录下 LK 代码结构 +app
2012-03-21 15:45:26 33753 6
原创 Android 开发之 ---- 底层驱动开发(一)
驱动概述 说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容。android 驱动 主要分两种类型:Android 专用驱动 和 Android 使用
2012-03-20 20:45:14 107076 11
原创 Binder---- Android 的IPC 通信机制
什么是Binder 在 linux 中,进程间的通讯机制有很多种,例如管道(pipe)、消息队列(message queue)、信号(signal)、共享内存(share memory)、套接字(socket)等方式,他们都是可以实现进程间通讯。但是,在 Android 终端上的应用软件的通信几乎看不到这些 IPC 通信方式,取而代之的是 Binder。Android 同
2012-03-13 17:37:49 11664 1
原创 socket通信 UDP文件传输(多客户端)——附源码
程序需求:程序分为server程序和client程序,通讯由client主动发起请求一个指定的文件,由server传文件给client。 一个server可以支持多个client通信。数据包要有校验机制。有丢包重传机制。支持断点续传。能正常处理各种异常现象。实现过程 服务器 一、制定UDP通信协议 设计一个UDP报头
2012-02-29 23:27:20 14766 17
原创 ARQ与滑动窗口协议
ARQ与滑动窗口概念 滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。 自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实
2012-02-27 23:30:07 42390 3
原创 ubuntu 网络服务配置
以DHCP方式配置网卡 编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces 并用下面的行来替换有关eth0的行: # The primary network interface - use DHCP to find our address auto et
2012-02-25 18:02:34 3128
原创 Linux 多线程文件读写操作 +实例
邮箱通讯 声明以下全局变量char cBuff[256]; //邮箱int iHead; //邮箱头指针int iTail; //邮箱尾指针 创建两个线程:XXX_Write和XXX_Read。XXX_Write:读取一个文件(大点的),将文件内容按序写入邮箱,同时修改尾指针。即头尾指针之间的内容是提供给XXX_Read线程读取的。
2012-02-24 12:56:28 11253
原创 I2C 协议
什么是I²C I²C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温
2012-01-31 20:43:26 1536
原创 linux 多线程编程
进程与线程 进程是程序执行时的一个实例,是执行程序在一定数据集上运行的过程,是LINUX系统分配资源的基本单位。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程进程是资源管理
2012-01-09 16:48:32 1869
原创 linux网络编程之 ─── socket概述
什么是SOCKETsocket的英文原义是“孔”或“插座”。作为4BDS UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,象一个多孔插座。一台主机犹如布满各
2012-01-04 19:33:52 2435
原创 linux 进程间通信详解
什么是进程间通信进程间通信就是在不同进程之间传播或交换信息。linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system
2012-01-04 11:49:52 6326
转载 Linux LCD驱动(四)--驱动的实现
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb_set
2011-12-27 14:52:28 9989
原创 Linux PPP详细介绍
什么是PPPPPP是一种网络中最为基础的协议。PPP协议(Point-to-Point Protocol)是一种数据链路层协议,它是为在同等单元之间传输数据包这样的简单链路而设计的。这种链路提供全双工操作,并按照顺序传递数据包。PPP为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。PPP协议包括以下三个部分:1. 数据帧封装方法。2. 链路
2011-12-27 11:53:05 10080
转载 Linux LCD驱动(三)--图形显示
3. BMP和JPEG图形显示程序3.1 在LCD上显示BMP或JPEG图片的主流程图首先,在程序开始前。要在nfs/dev目录下创建LCD的设备结点,设备名fb0,设备类型为字符设备,主设备号为29,次设备号为0。命令如下:mknod fb0 c 29 0在LCD上显示图象的主流程图如图3.1所示。程序一开始要调用open函数打开设备,然后调用ioctl获取设备相关信息,接下
2011-12-27 09:32:53 12796
转载 linux LCD驱动(二)--FrameBuffer
2. Linux 驱动2.1 FrameBufferLinux是工作在保护模式下,所以用户态进程是无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Lin仿显卡的功能,将显ux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer
2011-12-27 09:23:09 23798 2
转载 linux LCD驱动(一)--硬件分析
一 实验内容简要描述1.实验目的学会驱动程序的编写方法,配置S3C2410的LCD驱动,以及在LCD屏上显示包括bmp和jpeg两种格式的图片2.实验内容 (1)分析S3c2410实验箱LCD以及LCD控制器的硬件原理,据此找出相应的硬件设置参数,参考xcale实验箱关于lcd的设置,完成s3c2410实验箱LCD的设置 (2)在LCD
2011-12-27 09:18:09 17464
原创 Linux设备驱动之——input子系统
什么是INPUT Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输入设备一般包括键盘,鼠标,触摸屏等,在内核中都是以输入设备出现的。下面分析input输入子系统的结构,以及功能实现。linux中input系统主设备号是13次设备号: 0-31
2011-12-23 10:40:43 9157 2
TCP/IP详解.卷二:实现
2011-09-08
Java数据结构和算法(第二版)
2011-09-07
Python基础教程(第2版)--中文高清
2011-09-07
计算机程序设计艺术(第3版) 第1卷 基本算法
2011-09-07
C/C++头文件大全 (经典)
2011-08-28
Android camera 资料合集(物有所值)
2012-03-22
Android wifi资料合集(驱动、应用)
2012-03-22
linux 进程间通信及多线程操作源码
2012-02-27
Linux的电源管理架构分析 (高清文字pdf)
2011-11-15
深入解析Android phone模块
2011-11-14
嵌入式系统编程修炼之道
2011-11-14
Android 电话流程过程详细分析(Phone模块 )
2011-11-13
Linux内核编程指南(第3版)
2011-11-11
《Linux设备驱动程序(第三版)》pdf高清文字完整(非扫描)
2011-10-21
u-boot命令详解
2011-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人