`
danlov
  • 浏览: 28300 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
      LocationService即Android系统服务中的定位服务,其运行于系统进程中,APP要使用其实用到了Binder进程间通信机制,不过APP使用时,直接使用的是LocationManager对象,APP基本感觉不到Binder的存在,这是因为LocationManager中封装了Binder通信实现.       Binder进程间通信是Android的标准框架,使用模式固定,比较简单,故略过.本文主要偏向于JNI层的实现及JNI层与HAL层的通信.       除开应用层,整个服务其实分为四层:JAVA层、JNI层、HAL层、硬件层,其中JAVA层通过JNI层实现与HAL层 ...
有人分享了几个面试题,个人觉得题目出得比较全面,故本人有兴趣分析解答一下,同时帮自己理顺一些思路。     题目一:简述Android消息机制原理?      分析:这个非常重要,但因为太常见了,所以大家都知道,肯定会 ...
    很多文章提到的的IPC、Binder、AIDL都是混在一起说,有时候好像觉得它们是一样的,但是又有区别,那倒底有什么共同点与不同呢,还有Intent与它们有什么关系呢?     首先看看各自的全称与中文名:     IPC:Inter-Process Co ...
         如果不对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 ...
Global site tag (gtag.js) - Google Analytics