`
JasonShieh
  • 浏览: 521477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
有关Android NIO的注意点和重点今天Android123着重分析下上次 Android开发进阶之NIO非阻塞包(四) 一文中提到的不足地方改进。由于目前国内很多人资料书籍编写人员没有通过NIO实现服务器的经验,导致了很多例子中存在严重的错误,由于大多数例子为Echo这样的单次交互以及数据量较小所以反映不出问题的所在。    1. 读和写应该分开,NIO使用的是异步的方法但不等于说不会阻塞,在上面的例子中我们可以看到 判断  key.isReadable() 时,对于这个SelectionKey关联的SocketChannel尽量不要使用写入数据量过多时ByteBuffer使用hasRem ...
今天我们通过一个实例详细讲解下Android下NIO非阻塞服务器的开发,对于客户端而言Android123不推荐使用NIO,毕竟NIO相对于传统IO较为复杂,最重要的NIO是为了解决多线程并发问题而解决的技术,可能会因为管理和复杂性降低最终的结果,毕竟NIO是Java的,相关的类型比较难控制,对于客户端而言我们可以使用C++、Java、C#甚至Flash Action Script来编写。    下面我们以一个简单的Echo Server为例子来分析 import java.io.IOException; import java.NET.InetSocketAddress; import jav ...
有关Android NIO的精髓主要用于高负载的Socket网络传输,相对于传统I/O模型的Socket传输方式的优势,我们已经在 Android开发进阶之NIO非阻塞包(一) 中讲到了,这里不再赘述,一起来看看Android NIO有关Socket操作提供的类吧:  一、ServerSocketChannel 服务器套接字通道在Android SDK中查找package名为  Java.nio.channels.ServerSocketChannel    在Java的NIO中,ServerSocketChannel对应的是传统IO中的ServerSocket,通过ServerSocketCh ...
有关Android NIO的相关内容,本次Android123整理并归类如下,为了让大家感觉NIO和Android平台联系的紧密,这里我们结合ADT插件的重要开发工具DDMS中的源码进行分析。在android git中的SDK.git文件中,可以找到ddmlib这个文件夹。有关PC和手机的互通内核在这里使用了Java来完全实现。这里Android开发网一起帮助大家了解下PC同步软件的开发原理同时学习下Java中的New I/O技术。    比较重要的代码段我们贴出,逐一分析,其他的网友可以直接预读源码:    AdbHelper.java文件中    public static SocketCh ...
今天我们继续就Android DDMS源码一起分析NIO非阻塞通讯方式,Android123也会给大家分享下手机和PC互通中的一些技术。在NIO中有关SocketChannel和ByteBuffer的使用细节,可以在今天文章中    static void read(SocketChannel chan, byte[] data, int length, int timeout)             throws TimeoutException, IOException {         ByteBuffer buf = ByteBuffer.wrap(data, 0, length ! ...
1 场景 当用socket进行进程通信,传输数据的时候,会出现以下一些情况: (1)完整的一条消息被系统拆分成几条发送,例如要发送一条消息:Hello World ,却被系统分成两条消息发送,分别为:Hello 和 World。 (2)几条独立的消 ...
Eclipse C/C++关于socket(tcp/ip)相关API编译错误的问题 MinGW支持winsock2,但到编译的时候总是报错: undefined reference to `inet_addr@4' undefined reference to `gethostbyname@4' undefined reference to `WSAGetLastError@0' undefined reference to `inet_ntoa@4' undefined reference to `WSAStartup@8' undefined reference to `inet_ntoa@ ...

JVM初探与设置

    博客分类:
  • JAVA
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。 一般的高级语言要在不同的机器上运行,需要编译成不同的目 ...
一:首先必须配置jvm的path,sdk的path(这样运行各种可执行文件时就不必显示的添加可执行文件的路径了,如javac,aapt等)。 vim ~/.bashrc 根据自己软件的安装情况在.bashrc文件的末行添加如下: export JAVA_HOME=/usr/lib/jvm/default-java:/usr/lib/jvm/java-6-openjdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:JAVA_HOME/lib.tools.jar export JAVA_HOME CLASSPATH PATH ...
How to build Android application package (.apk) from the command line using the SDK tools Hello all android developers, I just want to share my experience building android apk manually using sdk tools without using Eclipse.  My original goal is motivated firstly by the desire to incorporate continuo ...
public class BuddleSort { /** * 冒泡排序算法 * @author Jason Shieh * @param orientNumbers * @return */ public static int[] sort(int[] orientNumbers){ if(orientNumbers == null || orientNumbers.length == 0){ return orientNumbers; } int temp; int last = orientNumbers.length ...
/** * @author : xxj * @date : 2012-7-24 * @time : 下午8:13:13 * @describe : 快速排序算法(JAVA) */ public class QuickSort { public static int[] quickSort(int[] numbers){ if(numbers == null || numbers.length < 2){ return numbers; } int i = 0; int j = numbers.length - 1; int ...
如果你刚开始接触 iOS 或 Mac OS X 编程,首先要学习一点编程语言 Objective-C 入门知识。Objective-C 并不是一门复杂的语言,经过一段时间的接触,你就能体会到它的优雅。Objective-C 语言实现了严格的面向对象编程。它扩展了标准 ANSI C 语言,增加了定义类和方法的语法。它还推行类和接口的动态扩展性,使任何类都能适配和采用。 如果你已经掌握了 ANSI C 语言,下面的内容能够帮助你掌握 Objective-C 的基本语法。如果你有其他面向对象编程语言的基础,你会发现 Objective-C 中含有大量传统的面向对象概念,例如封装、继承、多态性等。反 ...
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口 icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs/guide/developing/tools/aidl.html中对步骤作了详细描述: --1.Create your .aidl file - This file defines an interf ...
转自: http://www.cnblogs.com/feisky/archive/2010/07/23/1783826.html # Menifest.xml中加入: <application>中加入: <uses-library android:name="android.test.runner" /> <application>外面加入: <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /> < ...
Global site tag (gtag.js) - Google Analytics