240 发简信
IP属地:四川
  • 120
    Android GC 简史

    Android 开发者对于 GC 既熟悉又陌生,听说过很多虎狼之词,对一些问题又不置可否;今天聊聊 Android 里的 GC,如果你对于下面的问题有兴趣又没答案,那你应该会...

  • 120
    针对「内存抖动」的一次测试

    如果你是 Android 开发者,一定听过“内存抖动”这个词,如果高频地申请较大尺寸的内存,则可能导致短时间内频繁触发 GC,造成内存的频繁申请和释放,使用Profiler查...

  • 「Android Binder」AIDL中的 in / out 到底是啥?

    用过aidl的同学,可能见过下面的写法: 不知道你有没有好奇过这里的 in / out / inout 是什么意思呢? directional tag 去官网[https:/...

  • 指出一个错误: 所谓的directional tag(in/out/inout)是指数据流动的方向,这个概念与**客户端或服务端没有关系**。 只与数据提供方(caller)与数据接收方(callee)有关,当client调用方法时,client是caller,server是callee;当server调用方法时,server是caller,clent是callee. >>>理由: >>>逻辑推理: 试想一个常见的场景: clent向server注册一个callback, 方法调用的时候是server调client(原始类型默认是in,如果in表示数据从client流向server,可以推出:server调用onResult()时client拿不到数据),但client会拿不到回调数据吗?
    interface IDTInCallback {
    void onResult(int result);
    }
    >>> 理论分析: 对于client和server,相同的aidl文件编译后生成相同的java文件;caller调用Proxy.transact(); callee被回调Stub.onTransact();这个两个方法在client和server都是一样的,那么凭什么在client与server中的表现会不一样? 当然不需要苛责一篇5年前的文章,毕竟Android官网只说了一个"the way the data goes", google上也充斥着同样的错误。

    你真的理解AIDL中的in,out,inout么?

    前言 这其实是一个很小的知识点,大部分人在使用AIDL的过程中也基本没有因为这个出现过错误,正因为它小,所以在大部分的网上关于AIDL的文章中,它都被忽视了——或者并没有,但...

  • 指出一个错误: 所谓的directional tag(in/out/inout)是指数据流动的方向,这个概念与**客户端或服务端没有关系**。 只与数据提供方(caller)与数据接收方(callee)有关,当client调用方法时,client是caller,server是callee;当server调用方法时,server是caller,clent是callee. >>>理由: >>>逻辑推理: 试想一个常见的场景: clent向server注册一个callback, 方法调用的时候是server调client(原始类型默认是in,如果in表示数据从client流向server,可以推出:server调用onResult()时client拿不到数据),但client会拿不到回调数据吗?
    interface IDTInCallback {
    void onResult(int result);
    }
    >>> 理论分析: 对于client和server,相同的aidl文件编译后生成相同的java文件;caller调用Proxy.transact(); callee被回调Stub.onTransact();这个两个方法在client和server都是一样的,那么凭什么在client与server中的表现会不一样? 当然不需要苛责一篇5年前的文章,毕竟Android官网只说了一个"the way the data goes", google上也充斥着同样的错误。

    AIDL中的in、out、inout的区别

    一、概念说明 定向tag是AIDL中语法的一部分,其中in、out、inout是三个定向tag。在官网上关于Android定向tag的定义是这样的: All non-prim...

  • 【Android Tips】小厂的扫码还能怎么做?

    先说重点,你的App能识别下面这个二维码吗? 二维码链接[https://upload-images.jianshu.io/upload_images/2366635-f82...

  • 120
    「Android渲染」图像是怎样显示到屏幕上的?

    我们每天花很多时间盯着手机屏幕,不知道你有没有好奇过: 手机屏幕上的这些东西是怎么显示出来的? 这时候来了一位Android程序员(当然也可以是iOS或者是前端程序员)说: ...

  • 120
    【Android渲染】在onDraw()中创建对象的隐形成本

    熟悉Android自定义View的人大概都知道: 不要在onDraw里创建对象 大家在讲到这里,理由大概都是: onDraw()被调用快速高频 -->快速频繁申请内存 ---...

  • 120
    【Android渲染】为什么alpha渲染性能低?

    开门见山 1. 多次写入像素 在渲染不透明的像素时,只需要写入一次 在渲染透明像素时,每个像素至少需要写入两次 第一次是之前的像素值 第二次把之前的颜色与设置的不透明度做混合...

  • 120
    关于TCP的几个问题

    今天聊聊TCP,老规矩,为了更符合读者的思考逻辑,文章依然由问题来组织: 在一个不可靠的网络中,如何做到可靠的传输? TCP的连接到底是啥? “三次握手”做了什么? “四次挥...

  • 120
    一次HTTP请求经历了什么?

    程序员一定被问过这个问题: 我在浏览器输入一个网址,后面发生了什么? 有人要说了,这么老的问题也拿出来说: 就是HTTP协议呀,服务端也使用HTTP协议接收,我们就是这么做的...

  • 【Using English】61 Android管理应用内存

    随机存取存储器(RAM)在任何软件开发环境中都是宝贵的资源,但是在物理内存常常受到限制的移动操作系统中变得更加珍贵。尽管Android运行时(ART)和Dalvik虚拟机都会...

  • 【Using English】60 Android内存管理概览

    Android运行时(ART)和Dalvik虚拟机使用分页和内存映射来管理内存。这意味着应用对内存的任何修改都不会将内存从RAM中换出(换出是指将内存page拷贝到硬盘上,这...

  • 120
    Better Practice in Git Submodule

    (文中提到的仓库特指git仓库) 1. 背景介绍 开发中可能会遇到这样的情况: 项目依赖一个library 这个library在多个项目中都要用到(符合封装复用的原则) 我需...

  • 120
    【干货纪录片】《剩女》

    多么刺耳的一个词! 简介 原片 《剩女》Leftover Women 以色列导演(国外的导演常会有不同的视角),时长85分钟 内容上,以三位"剩女"的故事贯穿全片,用细节拼出...

  • 【Using English】59 Android SystemUI

    “Everything you see in Android that's not an app” SystemUI “那些你在Android中看到的,但不是一个应用的东西”...

  • About 【Using English】

    对于学习英语,我有过无数次的失败经验,总结经验后,我认为最好的方式就是直接使用英语,于是就有了这个【Using English】这个栏目,把我认为好的英语文章翻译成中文,从而...

  • TYPE_SYSTEM_ALERT 在 API 26 弃用,但是从 API23 开始就要手动申请权限了,否则也会失败

个人介绍
老实说,都是听来的