随笔分类 -  Android

摘要:AutoLock 的用法: 比如可以在头文件中定义一把锁,android::Mutex mLock; 在要使用锁的地方,定义一个AutoLock,如,android::Mutex::AutoLock _l(mLock); 利用_l对象的生命周期来自动调用析构(释放锁)就可以啦。 阅读全文
posted @ 2018-11-19 15:13 c&z 阅读(1666) 评论(0) 推荐(1)
摘要:sp(强指针)是通过引用计数来记录有多少使用者在使用一个对象,如果所有使用者都放弃了对该对象的引用,则该对象将被自动销毁。 wp(弱指针)在指向一个对象时,仅仅记录该对象的地址,不能通过弱指针来访问该对象(即:不能通过弱指针来调用该对象的成员) 假设有一个类MyClass,我们要用智能指针来引用这个 阅读全文
posted @ 2018-11-12 17:38 c&z 阅读(1116) 评论(0) 推荐(0)
摘要:/system Android系统底层的文件系统,应用组件,包含一些系统库,以及启动的配置文件 ./libhidl libhidl libhwbinder hidl_string在头文件HidlSupport.h中 ./core/libutils/include/utils String8.h St 阅读全文
posted @ 2018-10-12 20:12 c&z 阅读(136) 评论(0) 推荐(0)
摘要:Binder通信概述: Binder通信是一种Client-Server的通信结构。 (1)从表面上看,是client通过获得一个server的代理接口,对server进行直接调用; (2)实际上,代理接口中定义的方法与server中的定义的方法是一一对应的; (3)client调用代理接口中的某个 阅读全文
posted @ 2018-10-12 20:00 c&z 阅读(222) 评论(0) 推荐(0)
摘要:在Android中,有两种性质的线程: 主线程 也叫UI线程,主要作用是处理界面相关的业务 子线程 Android中的耗时操作(访问网络,I/O操作)不能在主线程进行,因为那样很可能导致界面的卡顿,甚至应用程序崩溃 其中主线程不做耗时操作,子线程不更新UI,从Android3.0开始,系统要求访问网 阅读全文
posted @ 2018-09-25 22:57 c&z 阅读(1174) 评论(0) 推荐(1)
摘要:RefBase system/core/include/utils/RefBase.h IInterface frameworks/native/include/binder/IInterface.h IBinder frameworks/native/include/binder/IBinder. 阅读全文
posted @ 2018-09-14 10:34 c&z 阅读(184) 评论(0) 推荐(0)
摘要:defaultServiceManager()返回的是C++层的IServiceManager对象 获取IServiceManager对象的目的是为了和ServiceManager进程进行通信 如:Server要通过IServiceManager对象发送请求指令注册到ServiceManager进程 阅读全文
posted @ 2018-09-13 19:54 c&z 阅读(295) 评论(0) 推荐(0)
摘要:AIDL中的定向 tag 表示了在跨进程通信中数据的流向,其中 in 表示数据只能由客户端流向服务端, out 表示数据只能由服务端流向客户端,而 inout则表示数据可在服务端与客户端之间双向流通。其中,数据流向是针对在客户端中的那个传入方法的对象而言的。in 为定向 tag 的话表现为服务端将会 阅读全文
posted @ 2018-09-13 12:05 c&z 阅读(1102) 评论(0) 推荐(0)
摘要:序列化(Serializable):将对象的状态信息转换为可以存储或传输形式的过程。简单来说,序列化就是将运行时的对象状态转换为二进制,然后保存到流,内存或者网络。 在序列化期间,对象将其当前状态写入到临时或持久性存储区,之后,我们可以从存储区中读取或反序列化对象的状态,重新创建该对象。 Seria 阅读全文
posted @ 2018-09-12 20:46 c&z 阅读(485) 评论(0) 推荐(0)
摘要:AIDL:Android Interface Define Language,它是Android的一种接口定义语言,用于生成可以在Android设备上,两个进程之间进行通信的代码,即实现进程间的通信 AIDL的编写主要分为如下三部分: 1.创建AIDL (1)创建要操作的实体类,实现Parcelab 阅读全文
posted @ 2018-09-12 19:43 c&z 阅读(135) 评论(0) 推荐(0)
摘要:交叉编译:在一个平台下编译出另一个平台可以执行的二进制文件 Google提供的NDK就可以完成交叉编译的工作 根据运行设备的不同,可以将CPU分为: arm结构:主要在移动手持、嵌入式设备上 x86结构:主要是台式机、笔记本上使用,如Intel和AMD的CPU NDK工具必须在Linux下运行,它可 阅读全文
posted @ 2018-09-12 17:24 c&z 阅读(197) 评论(0) 推荐(0)
摘要:下载好Android源码,设置好环境变量后(. build/envsetup.sh或source build/envsetup.sh),便可以使用Android集成的shell命令,如下: croot 回到Android源码的根目录 m 在源码树的根目录执行make mm 编译当前目录的所有模块 m 阅读全文
posted @ 2018-08-30 16:16 c&z 阅读(238) 评论(0) 推荐(0)
摘要:在Android开发中,程序崩溃分三种情况: 未捕获的异常 ANR(Application Not Responding:应用程序不响应) 闪退(NDK程序引发错误) JDK(Java Development Kit) SDK(Software Development Kit) NDK(Native 阅读全文
posted @ 2018-08-30 15:28 c&z 阅读(1582) 评论(0) 推荐(0)
摘要:adb(Android Debug Bridge),它是PC机与Android设备的连接桥(通过adb,PC机可以控制与之相连的Android设备) adb devices #查看当前连接的设备列表 adb root #获取root权限 adb remount #进行重新安装(有时候,连接会变得不稳 阅读全文
posted @ 2018-07-23 18:14 c&z 阅读(226) 评论(0) 推荐(0)
摘要:Android.mk文件编写的例子: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello LOCAL_SRC_FILES := hello.cpp inlcude $(BUILD_SHARED_LIBRAR 阅读全文
posted @ 2018-07-23 17:00 c&z 阅读(1884) 评论(0) 推荐(0)