原创 Android JNI 多線程

作爲多任務實現的一種機制,多線程應用得非常廣泛,相對於多進程,多線程不僅運行效率高,而且還可以提高系統資源的使用效率。Android JNI多線程實際也是linux的多線程 多線程編程常用函數 1.線程創建 進程被創建時,系統會爲其

原创 Android Native Signal機制

信號是Linux編程中非常重要的部分,同樣也適用於android 信號機制是進程之間相互傳遞消息的一種方法,信號全稱爲軟中斷信號,也有人稱作軟中斷。從它的命名可以看出,它的實質和使用很象中斷。所以,信號可以說是進程控制的一部分。 軟中斷

原创 android linux進程間通信——使用匿名管道

一、什麼是管道 如果你使用過Linux的命令,那麼對於管道這個名詞你一定不會感覺到陌生,因爲我們通常通過符號“|"來使用管道,但是管理的真正定義是什麼呢?管道是一個進程連接數據流到另一個進程的通道,它通常是用作把一個進程的輸出通過管道

原创 EPoll模型

epoll僅僅是一個異步事件的epoll僅僅是一個異步事件的通知機制,其本身並不作任何的IO讀寫操作,它只負責告訴你是不是可以讀或可以寫了,而具體的讀寫操作,還要應用程序自己來完成。epoll僅提供這種機制是非常好的,它保持了事件通知與I

原创 JNI 數據類型轉換

1、基本數據類型下面一張表是描述了 Java 基本數據類型和JNI中基本數據類型的相對應關係已經佔用空間大小。 隨便觀察就能發現,其實就基本數據類型而已,JNI基本數據類型只是比Java基本數據類型前多了個’j’而已當然,JNI中還有

原创 Poll模型

poll()系統調用是System V的多元I/O解決方案。它解決了select()的幾個不足,儘管select()仍然經常使用 poll函數 #include <sys/poll.h>int poll (struct pollfd

原创 pthread的TLS(THREAD LOCAL STORAGE)

TLS全稱爲Thread Local Storage,是系統爲解決一個進程中多個線程同時訪問全局變量而提供的機制,保證數據的完整性與正確性,也可以稱爲 Thread Specific Data ,即表面上看起來這是一個全局變量,所有線程

原创 android mmap的使用

http://kenby.iteye.com/blog/1164700 共享內存可以說是最有用的進程間通信方式,也是最快的IPC形式, 因爲進程可以直接讀寫內存,而不需要任何 數據的拷貝。對於像管道和消息隊列等通信方式,則需要在內核

原创 jni常用函數

說明:1. env參數是指向函數的列表的指針。在C中調用爲(*env)->,在C++中調用爲(env)->       2. 本地方法的obj 的意

原创 Select模型(PIPE)

Linux中的函數select和poll用來支持I/O複用的功能,在Linux中I/O模型可以分爲以一幾種:(引用葉劍峯) (1)阻塞I/O 這個模型也是最容易理解的 程序調用和我們基本的程序編寫是一致的: fd = c

原创 android socket

android socket實際上還是linux sokcet,只是android socket不支持原始套接字,下面概括下介紹socket和一些常用的函數原型 Socket接口是TCP/IP網絡的API,Socket接口定義了許多函數

原创 學習maven的使用,看到一篇很實用的入門教程(菜鳥級入門)

一、前言         早就知道maven 在java 項目的管理方面名聲顯赫,於是就想着學習掌握之,於是查閱了大量文檔。發現這些文檔的作者都是java 的大腕,大多都是站在掌握了一定maven 基礎的角度上進行介紹,讓我這初學者看的雲

原创 Java ClassLoader基礎及加載不同依賴 Jar 中的公共類

本文主要介紹 ClassLoader 的基礎知識,ClassLoader 如何動態加載 Jar,ClassLoader 隔離問題及如何加載不同 Jar 中的公共類。   本文工程開源地址見:Java Dynamic Load Jar

原创 Ubuntu 安裝SVN服務器端

Apache Subversion(簡稱SVN,svn),是一個開放源代碼的版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。互聯網上越來越多的控制服務從CVS轉移到Subversion。 首先,從

原创 Ubuntu+NDK編譯支持HTTPS的libcurl

參考文章: 1.NDK環境配置 http://blog.csdn.net/smfwuxiao/article/details/6587709 2.libcurl的配置修改 http://piggyq.com/pen/compile-li