
android底层
Kaiwii
单调,简单
展开
-
ANDROID Bionic C DOCS
Bionic C 库一览:介绍:核心体系:Bionic设计的核心思想是:尽量简单。这意味这这个C库只围绕着内核提供轻量级的包装,我们让它尽量小,不去处理一些细枝末页的事情。 取Bionic这个名字,是因为它由部分BSD和部分linux组成: 它的代码由BSD C库和自定义的linux代码(用于处理线程,进程,信号,和其他事情)混合而转载 2012-09-11 10:54:37 · 1856 阅读 · 0 评论 -
ndk开发之利用android系统中.so库文件(例:libsqlite.so)
不像liblog.so,android 没有直接开放libsqlite.so给外部使用虽然Android提供了访问 sqlite的Java接口,但现在需要在ndk中使用 c 语言访问sqlite。 方法有二: 第一种:使用源码 sqlite3.h, sqlite3.c。 从android源码网站下载sqlite.git库,找到这两个文件,放到项目源码中去,进行ndk编译转载 2013-01-18 10:41:42 · 6086 阅读 · 0 评论 -
函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal)
Linux下如何指定调用约定(calling convention) Windows下的调用约定可以是stdcall/cdecl/fastcall,这些标识加在函数名前面,如:int __stdcall funca()但在Linux下,如按照上面写法后,编译程序将导致编译错误,Linux下正确的语法如下:int __attribute__((__stdcall__)) func转载 2013-01-14 13:51:18 · 4901 阅读 · 0 评论 -
recv send 阻塞和非阻塞
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序要发送数据的转载 2013-01-29 09:26:43 · 1186 阅读 · 0 评论 -
native的Socket向Android的LocalSocketServer发送汉字乱码的问题
native的Socket发送字节流默认是GB2312的,所以在Java方面需要指定GB2312byte[] buffer = new byte[50];StringBuffer strBuf = new StringBuffer();InputStream input = receiver.getInputStream();while((len = input.read(buf转载 2013-01-25 07:18:44 · 1616 阅读 · 0 评论 -
android native c java进行本地socket通信
[html] view plaincopyprint?PRE class=html name="code"sizcache="1" sizset="2">方式一:java做服务器端,native做client端1. 建立java应用程序,建立Server 类 PRE class=html name="code">/** Copyright (C) 2009转载 2013-01-25 07:20:00 · 3268 阅读 · 0 评论 -
守护进程与setid()
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的U转载 2013-01-09 14:17:14 · 5037 阅读 · 0 评论 -
Binder框架在Framework层的C++中的使用
Kaiwii comment:this post is the best around what i have found in CN from the net.关于Binder在C++层的使用,搜过几篇文章,讲得比较多,也比较复杂,除非是想对OpenBinder这个开源项目深入研究,否则的话,用不了那么多的知识。我因为需要移植Android调些Framework层的Bug,一般跟踪程序时只要转载 2013-01-04 10:24:52 · 717 阅读 · 0 评论 -
启动init.rc文件中的service
Android 控制用户定义 service1. 修改/etc/init.rc添加用户定义service 定义service xxx /usr/sbin/xxxuser rootdisabledoneshot2.Android init 启动后会调用init.c 来实现init.rc文件的解析。并启动android property service.转载 2012-12-19 16:42:48 · 13809 阅读 · 6 评论 -
pthread_key_t和pthread_key_create()详解
pthread_key_t和pthread_key_create()详解下面说一下线程中特有的线程存储, Thread Specific Data 。线程存储有什么用了?他是什么意思了?大家都知道,在多线程程序中,所有线程共享程序中的变量。现在有一全局变量,所有线程都可以使用它,改变它的值。而如果每个线程希望能单独拥有它,那么就需要使用线程存储了。表面上看起来这是一个全局变量,所有转载 2013-01-03 15:11:11 · 1886 阅读 · 2 评论 -
Android程序的安全系统
最近在移植Android过程中遇到了Android程序(apk)权限的问题。最近也对这方面进行了一些了解,在此和大家分享。Android框架是基于Linux内核构建,所以Android安全系统也是基于Linux的安全架构建立的。在Linux安全系统中,用户和组起着重要的作用,Linux中所有的资源给不同的用户和用户组设置了不同的访问属性。如果你对Linux下面用户和组的概念不熟悉,请先补习一下转载 2012-12-28 10:34:34 · 845 阅读 · 0 评论 -
Android Bander设计与实现 - 设计篇
Android Bander设计与实现 - 设计篇转载 2012-12-10 15:32:17 · 982 阅读 · 0 评论 -
Android中与外部进程通信和调用外部程序
当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程。之前我写过两篇关于进程的笔记,请看:http://blog.youkuaiyun.com/lincyang/article/details/5897080 和 http://blog.youkuaiyun.com/lincyang/article/details/6451813。在Java中执行外部程序,是通过java.lang.Ru转载 2012-09-12 16:38:05 · 5851 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----Android.mk 介绍
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪转载 2012-09-12 10:16:10 · 1050 阅读 · 0 评论 -
android sqlite db-journal文件产生原因及说明 .
今天在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是google了sqlite的官方文档,发现该文件的用途如下:该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生,在事务结束时删除;当程序发生崩溃或者系统断转载 2013-02-25 13:24:07 · 16602 阅读 · 4 评论