[Mobile]Android
文章平均质量分 73
行知致简
大道至简,衍化至繁。悟在天成,行知合一!
展开
-
SELinux策略语言--编写TE规则
neverallow规则也支持通配符来代表所有的类型,求补算操作符(~)也表示所有的类型,除了明确列出的之外。这条规则是最常见的使用type_change规则的示例,它在用户登陆时重新标记终端设备,login程序会通过一个内核接口查询SELinux模块中的策略,传递类型sysadm_t和tty_device_t,接收sysadm_tty_device_t类型作为重新标记的类型,这个机制允许在一个新的登陆会话过程中,登陆进程以用户的名义标记tty设备,将特殊的类型封装到策略中,而不用硬编码到应用程序中。原创 2023-02-02 18:00:58 · 1425 阅读 · 1 评论 -
Android--Binder机制
从进程角度来看IPC(Interprocess Communication)机制进程空间划分:用户空间(User Space) ——内核空间(Kernel Space)每个Android的进程,只能运行在自己进程所拥有的虚拟地址空间。例如,对应一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间,内核空间的大小是可以通过参数配置调整的对于用户空间,不同进程之间是不能共享的,而内核空间却是可共享的。原创 2022-10-25 15:58:33 · 1857 阅读 · 0 评论 -
Android跨进程通信--AIDL原理解析
AIDL是一个缩写,全程是Android Interface Definition Language,也是android接口定义语言。准确的来说,它是用于定义客户端/服务器通信接口的一种描述语言。它其实一种IDL语言,可以拿来生成用于IPC的代码。从某种意义上说它其实是一个模板。为什么这么说?因为在我们使用中,实际起作用的并不是我们写的AIDL代码,而是系统根据它生成的一个IInterface的实例的代码。原创 2022-10-25 15:57:04 · 5880 阅读 · 0 评论 -
Android 内存泄露及LeakCanary分析
Java中的WeakReference是弱引用类型,每当发生GC时,它所持有的对象如果没有被其他强引用所持有,那么它所引用的对象就会被回收,同时或者稍后的时间这个WeakReference会被入队到ReferenceQueue中,LeakCanary中检测内存泄露就是基于这个原理。:原因如上,Handler持有外部类的引用,Message持有Handler的引用,MessageQueue持有Message的引用,Looper持有MessageQueue的引用,Looper一直存在,导致引用链都不会被回收;原创 2022-10-23 21:23:50 · 2016 阅读 · 0 评论 -
Android内存泄漏详解
先说GCRoot根,GCRoot根有以下几种引用类型的静态变量常量引用的对象虚拟机栈(本地变量表)中引用的对象存活的线程对象本地方法栈JNI中引用的对象class对象GCRoot根的特点就是被GCRoot根引用的对象会虚拟机判定为不可回收对象,也就是GC时不做回收处理而GCRoot树就是被这些GCRoot根引用的一系列引用的集合,比如一个存活的线程中如果调用了Activity,那么这个Activity就无法被Thread回收。原创 2022-10-23 19:21:19 · 1547 阅读 · 0 评论 -
Android之startService()和bindService()区别
Service是android 系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务总是藏在后台的。原创 2022-10-23 16:07:55 · 1000 阅读 · 0 评论 -
Android中Handler,Looper详解
核心知识点1、相关名词UI线程:就是我们的主线程,系统在创建UI线程的时候会初始化一个Looper对象,同时也会创建一个与其关联的MessageQueueHandler:作用就是发送与处理信息,如果希望Handler正常工作,在当前线程中必须要有一个Looper对象Message:Handler接收与处理的对象。Handler也能接收与处理Runnable对象MessageQueue:消息队列,先进先出。原创 2022-10-20 18:09:05 · 1428 阅读 · 0 评论 -
enum类型序列化Serializable和Parcelable
enum类型被intent所携带时需要注意的地方https://blog.csdn.net/tedzyc/article/details/83733992012年12月22日 17:18:30tedzyc阅读数:13847 一般我们在Activity之间传递对象时多用Parcelable。比如写一个class,在这个class上标明implements Parcela...转载 2019-03-09 21:43:07 · 4098 阅读 · 0 评论 -
Android消息通信之Activity间消息传递
Android消息通信之Activity间消息传递https://blog.csdn.net/qq_34911465/article/details/79420559https://www.cnblogs.com/chenjy1225/p/9662510.html一、消息通信机制Android 开发之中我们常常需要应用到消息传递的机制,消息的传递有多种方式。消息传递的作用不必多说,...原创 2019-03-09 17:13:17 · 3102 阅读 · 1 评论 -
Android跨进程双向通信Messenger机制
Activity和Service的跨进程双向通信机制https://www.jianshu.com/p/2c662a35872e玉树林枫关注2017.05.22 22:11*字数 704阅读 152评论 0喜欢 3对于不同进程中的Activity和Service,要实现IPC(跨进程通信),其实就是通过IBinder接口,其中可能涉及到AIDL编程,和操作系统提供的进程通信...转载 2019-03-09 16:36:58 · 367 阅读 · 0 评论 -
Android Fragment+ViewPager 组合使用
Android Fragment+ViewPager 组合,一些你不可不知的注意事项2016年12月26日 09:26:30亦枫Blog阅读数:2069版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wenbitianxiafeng/article/details/53883587前面两篇文章中,对 Fragment 的基本使用、...原创 2019-03-02 17:49:30 · 9923 阅读 · 1 评论 -
Android定时任务实现方式归纳总结
Android 定时任务的多种实现方式2016年05月22日 20:51:41痕迹天涯119阅读数:63920版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014492609/article/details/51475254定时任务实现总结在Android中这算是一个常用的功能了,,有兴趣一起来探讨下可以Android消...转载 2019-03-02 16:24:33 · 1683 阅读 · 0 评论 -
Android切换主线程更新UI方法总结
Android切换主线程更新UI方法总结一、归纳总结1. view.post(Runnable action)2. activity.runOnUiThread(Runnable action)3. Handler机制4. 使用AsyncTask 二、详细介绍及示例方法一: view.post(Runnable action)假如该方法是在子线程中textV...原创 2019-02-14 10:09:29 · 12113 阅读 · 1 评论 -
【转载】Android静态代码检查实践
原 Android 静态代码检查实践 2017年10月16日 18:03:35 ScalleteLeng 阅读数:1192 ...转载 2019-02-10 21:18:47 · 802 阅读 · 0 评论 -
Android日期时间与时区使用总结汇总
Android中关于日期时间与时区的使用总结2017年03月22日 11:11:23 微信号 lanjixingxun 阅读数:5356关于Android 实际开放中,涉及时间转换问题,还是很有必要详细知晓一下,具体的先参考这篇文章,然后被我无耻的拷贝过来,具体更详细和深入的,有时间详细的啰嗦一下,原文地址:http://www.cnblogs.com/endure/p/3485281.h...转载 2019-02-26 09:43:18 · 1375 阅读 · 0 评论 -
Android多线程同步转异步方法总结
Android多线程同步转异步方法总结//实现网络传输,要求:【线程同步转异步】在子线程完成数据上报,当前调用线程必须等待"子线程"返回的结果后,才继续向下执行,返回 response byte数组。一、归纳总结1. Thread\Handler + Callback2. Thread\LooperHandler + FutureTask3. AsyncTask 二...原创 2019-02-14 10:47:24 · 1703 阅读 · 0 评论