- 浏览: 28300 次
- 性别:
- 来自: 上海
最新评论
文章列表
LocationService即Android系统服务中的定位服务,其运行于系统进程中,APP要使用其实用到了Binder进程间通信机制,不过APP使用时,直接使用的是LocationManager对象,APP基本感觉不到Binder的存在,这是因为LocationManager中封装了Binder通信实现.
Binder进程间通信是Android的标准框架,使用模式固定,比较简单,故略过.本文主要偏向于JNI层的实现及JNI层与HAL层的通信.
除开应用层,整个服务其实分为四层:JAVA层、JNI层、HAL层、硬件层,其中JAVA层通过JNI层实现与HAL层 ...
Android几个面试题解答
- 博客分类:
- Android 移动 手机
有人分享了几个面试题,个人觉得题目出得比较全面,故本人有兴趣分析解答一下,同时帮自己理顺一些思路。
题目一:简述Android消息机制原理?
分析:这个非常重要,但因为太常见了,所以大家都知道,肯定会 ...
很多文章提到的的IPC、Binder、AIDL都是混在一起说,有时候好像觉得它们是一样的,但是又有区别,那倒底有什么共同点与不同呢,还有Intent与它们有什么关系呢?
首先看看各自的全称与中文名:
IPC:Inter-Process Co ...
开机自动启动程序主界面研究
- 博客分类:
- Android 移动 手机
如果不对Android系统进行订制,只用SDK提供的功能达到开机启动App主界面的目的在理论上是可行的,因为许多应用都实现了开机自动启动后台Service的功能,同理开机启动Activity可以采用同样的方式。
原理 ...
本人目前参与的一个项目,其Android系统是高度本地化定制的,APP上的数据主要来自本机硬件,这就需要一种机制来实现底层数据与上层APP之间进行交互。最初的想法使用JNI方式封装一个C程序库供APP调用,此种方式的好 ...
由于参考资料比较少,花了一整天经过不断尝试,终于成功在Eclipse中C工程里加入第三方静态库。
环境:Windows7 + Eclipse IDE for C/C++ Developers4.4.1 + cygwin
过程如下:
第一步:新建一Static Library工程“libtest”,作为静态库进行测试
1.新建Static Library C工程
点击完成即可。
2.编写.h头文件与.c源代码文件(参考《C Primer Plus》里的例子)
...
提高程序的代码质量,是我一直以来想追求的,但是在实际操作过程中时常感到比较困难。主要在于提高代码质量对基本功的要求比较高,同时要有好的抽象能力与预见性。所以想在较短时间里提高能力基本不可能,第 ...
ListView控件在Android应用程序中被使用的频率非常之高,而ListView的主要代码都集中在Adapter中,因为ListView每一行的子View的产生与数据填充都是Adapter中做的,其实就是getView回调函数。getView函数非常重要,技术面试官也喜欢问应聘者对该函数的理解,尤其是View的重用。
getView函数的完整定义如下:
public View getView(int position, View convertView, ViewGroup parent)
其中返回值就是返回给ListView每一行的子View
...
Android有个机制,没有被程序主动销毁的Activity会被放入内存,其销毁由系统根据内存使用情况进行控制。所以在后台的Activity什么时候会被系统干掉我们没办法预见,而且被系统干掉的Activity,系统有时候会帮我们重新创 ...
最近将Eclipse中Android项目导入到了IDEA中,项目分两部分,其中一个为Library,导入后编译通不过,项目中相当多的jar为主工程与Library共用,在Eclipse中没有问题,而IDEA不行。
在IDEA中尝试了几次,总提示找不到Class或者“Unable to execute DX”。因为缺少资料,最经过不断尝试,终于解决问题,步骤如下:
1.打开project Structure
选择“Libraries”,后点“+”增加一个java的Library库集合
选择主工程与库工程都用到的jar后,确认时,需要选择用到该库的项目,选主工程与库工程即 ...
Android程序与Windows程序有个很大的区别,就是自己的应用可以利用其它应用的组件和功能,不用重复开发。非常典型的就是调用其它应用的Activity,相信大家都用过,比如调用系统拨号、拍照功能或是现成的浏览器。
调用起来非常简单,利用Intent的隐式跳转,比如调用拨号:
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse ("tel:"+phone_number));
startActivity(intent);
非常简单,复杂一些的会用到intent- ...
最近在看设计模式,想从理论联系实际来分析分析。因为在Android开发中,ListView用的特别多,用ListView时不得不用Adapter,很明显,从名字上可以看出,这里用到了设计模式中的适配器模式,但是看了别人介绍的适配器模式好几遍,也没能彻底明白ListView这块与Adapter模式有啥明显的对应关系。我刚开始的理解是:ListView要用到Adapter,而Adapter是一抽象类,我们具体使用时,实现具体的Adapter就可以了,好像与Adapter没啥特别大的关系。
今天又研究了几个例子,然后好好想了一下,突然醒悟,ListView这块的确是非常典型的适 ...
自定义Application对象在Android应用中不是必须的,因为没有自定义,系统会提供默认的,但是利用Application对象在一些大型项目中或是不可缺少的,我们来看看Application对象的作用:
1.保存全局变量
这样我们就不需要将全局变量保存到static变量中了,而是写在Application对象中。
2.初始化全局变量
由于Application是应用的真正入口,我们可以在此对全局变量进行始化,比如目录创建 ,数据库操作对象创建等。
3.程序的退出
由于每个应用必会先创建Application对象,Application也有自己的生命周期,在退出程序前覆写exi ...