中文原创文章基地
-
-1 10
在做mtk和研究android的dalvik源码时会遇到过不知如何去从大体理解dalvik,掌握了dalvik的创建过程对于分析和研究启动过程是十分必要的。
在C++中调用Java的方法一般分为五个步骤:初始化虚拟机、获取类、创建类对象、调用方法和退出虚拟机。
1) 初始化虚拟机。
JNIEnv *env;
JavaVM *jvm;
-
-12 16
1.操作系统是ubuntu11.10
2.去官网下载texinfo4.9源码
3.安装依赖包:
sudo apt-get install libncurses5-dev
4.编译并安装到自己的机器中
-
-12 7
- 在android里面跨进从传递数据只能传递基本的数据类型,对象是不能传递的其实也可以要使用aidl,不过原理还是在新的进程中创建一个一样的对象,类的描述就在aidl里面,所以在跨进程的时候为什么要有aidl的原因,下面是用c++的方式通过nativeAPI的soket传递Parcel。之前做过了在android下通过socket发送数据的实验,也做过了parcel包的制作和解包的实验(这两个实验的源程序之前都在本博客的其他文章中贴过)。昨天和今天把这两个过程合并了起来:即在Android环境下,甲程序(C++程序)将数据封装在Parcel中,并把Parcel发送到SOCKET;乙程序(C++程序)通过SOCKET接收到Parcel包,并解出封装在其中数据。
-
-12 7
我们在做android开发的时候可能会遇到过这样的问题,动态的加载.so库文件,而在api中只提供给我们System.LoadLibrary();这样一个接口。我们只能加载/data/data/xxx.xxx.xxx/lib/下面的.so库,不能加载sdcard上面的.so库。这样给动态加载.so带来了许多的麻烦。但是我们可以通过dlopen(".system/lib/xxx.so",RTLD_NOW);来调用系统的lib,你只需要写个.so放到工程的/libs/arm-eabi/xxxx下面,然后让.so去调用你系统里面某个位置对.so,从而达到动态安装的.so的功能。
-
-11 24
IntentService的出现主要是在于解决了多次startService()调用出现的资源同步问题,初次之外还可以解决UI阻塞的问题,因为他使用了HandlerThread 将MessageQueue和Looper放到了单独的
线程中,从而维护了对此startService()的环境队列,在者又可以在HandlerThread 中区执行Handler.target的细节。所以就相当于你在service中开了线程并将该线程加入MessageQueue和Looper,用于维护队列和处理事件。
-
-11 16
其实这个错误已经提示出来了,根据错误的提示修改下就行了,但是我看了下网上的说要重装eclipse,感觉没那么严重吧。
Errors occurred during the build.
...
-
-11 15
/data/data/<package name> 是当前应用程序私有的,可以供当前的应用程序操作。/data/data/<package name>目录的权限为rwxr-xr-x,拆解:
...
-
-11 14
Android深度抄袭并改造了J2ME,先来说下J2ME,在J2ME里面,控件分为高级控件和低级的画布,原因在于什么地方?在于应用的两个方向,高级的控件主要应用于常规的软件开发一些实用性的软件,对于这样的软件对UI的要求比较有规则,不像游戏。对于这些规则性的软件,J2ME就需要提供一些规则性的API来方便开发者的调用,但又不能过于简单,要有很强的可塑性。对于游戏这类的界面,常规的组件反而会成为一种瓶颈,原因在于游戏的画面更新的太快,不仅如此样式变化的也很快,所以对于这类组件就必须用画布来解决,将组件的具体展示交给程序,让程序去控制。在实现方面,高级的组件内部是使用
-
-11 14
在开发android的时候会发生这样的异常,异常信息显示如下:
”This message is already in use“
发生的原因: 使用Message的时候发生了多次使用,也就是Message对象是线程安全的,当我们再次使用Message的时候,Message已经处在队列中了
-
-10 21
InputStream isStrm = null;
DataInputStream dataIn = null;byte[] tbt;
-
-10 17
Activityd的创建要经过一堆的初始化过程,我们平时在开发中只需要使用Intent就行了,至于如何让创建,以及如何加载apk里面的类资源以及文件资源都给屏蔽掉了,Intent到底是什么?为什么可以跨进程?为什么可以发广播又可以启动服务,还可以传参?Activity到底是什么,既可以显示空间又可以窗口管理,又可以路由消息?到底是什么机制在支撑着Activity运行?
这篇只简单的谈论下Activity的上下文创建过程。
Activity与ContextImpl的关联:
-
-10 14
在我们刷机的时候会经常看到 fastboot ,也就是开机的文字界面,这个fastboot是用c写的,在uboot检查完硬件以及初始化堆栈结构后将cs/ip指向fastboot代码段处执行的,他主要完成的功能是清除flash中的内容,往flash中烧写linux内核以及镜像文件,这些镜像文件包括.so以及framework的jar包。 fastboot协议是一种通过usb连接于bootloader通讯的机制
...
-
-9 6
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
1.强引用
本章前文介绍的引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。
-
-9 5
本人英语水平有限,翻译有很多不足之处,希望高手们多多帮助。
英文原文:
由于空间有限,英文原文请参见: