240 发简信
IP属地:广东
  • 120
    研发团队如何实施OKR

    首发于fxm5547的博客 什么是OKR 如何实施OKR 如何实施OKR的核心是如何定义Objectives和Key Results。 首先定义整个研发部门的Objectiv...

  • 120
    圈外职场学园《七天高效表达训练营》随记

    高效表达就是:用最简练的语音传递最有价值的信息。 高效表达的核心有2点: 一是“最简练的语言”; 二是“最有价值的信息”。 前者是讲效率,后者是讲效果。也就是说,高效表达其实...

  • 120
    如何建立一套自己的思维框架?

    思维框架是心灵层级的思维方法体现,每个人的思维都不同,所以每个人的思想不同。 建立思维最大的好处就是,你不再轻易被表象所迷惑,有利于指导自己做出正确选择。 我们正处在整个人类...

  • flutter sdk 的版本必须是需要 v1.9.1-hotfixes分支的吗?不支持其他版本的sdk?

    搭建Flutter-Native混合工程,并集成咸鱼Flutter_boost

    目录 一、Flutter_Boost是什么 二、准备工作 三、已经有Native项目 1、命令行进入项目目录 2、运行:flutter create -t module fl...

  • [译]关于 Android Adapter,你的实现方式可能一直都有问题

    原文地址:Writing Better Adapters 原文作者:Danny Preussler 译文出自:掘金翻译计划 译者:Siegen 校对者:Liz,张拭心 对An...

  • 120
    Android 预览PDF

    前言 Android系统是不支持阅读PDF的。 1. Mozilla PDF.js 什么是PDF.js PDF.js、pdf.js是一款使用HTML5 Canvas安全地渲染...

  • 120
    2019Android秋招提前批面试总结(已拿BAT等6家offer)

    在上一篇实习随笔| 周记(五)提过因为实习忙碌和秋招提前批将尽而焦灼和苦恼,于是在各种思想斗争和考虑后,终于下定决心在项目新版本上线之际办理了离职,并开始全心全意投入秋招。原...

  • 同问,大佬现在想明白了吗?

    OKHttp源码解析(六)--中阶之缓存基础

    1.OkHttp源码解析(一):OKHttp初阶 2 OkHttp源码解析(二):OkHttp连接的"前戏"——HTTP的那些事 3 OkHttp源码解析(三):OKHttp...

  • 120
    OKHttp源码解析(一)--初阶

    这段时间老李的新公司要更换网络层,知道现在主流网络层的模式是RxJava+Retrofit+OKHttp,所以老李开始研究这三个项目的源代码,在更换网络层后,开始分享这个三个...

  • 120
    Android NDK开发扫盲及最新CMake的编译使用

    本篇文章旨在简介 Android 中 NDK 是什么以及重点讲解最新 Android Studio 编译工具 CMake 的使用 1 NDK 简介 在介绍 NDK 之前还是首...

  • 120
    Android中的MVC MVP MVVM框架模式

    前言 谈起MVC,MVP和MVVM这三个最耳熟能详的Android框架,相信大家对它们都不陌生,但在实际的情况下,我们很难去界定和定义MVC、MVP和MVVM,从本质上来讲他...

  • 兄弟,原来你也在刚哥星球里;
    这里的M层会持有对V层的关联的原因在于:在MVC模式下,C 层操作M 层进行数据更新时,M层会通知V 层数据的变化,比如说要更改某个textview显示的文字,在M层的数据更新时(你需要更新的文字内容是在M层处理的)会通知textview更改文字,即setText()。
    M层与V层之间有关联根本的原因是M层与V层之间有强引用.

    浅谈Android MVC、MVP和MVVM

    一、MVC(Model,View,Controller)MVC模式是最经典开发模式之一,它分为三个部分Model,View,Controller。 适用场景:适用于较小,功能...

  • 你的原文让我学到了很多,十分感谢

    Android 屏幕刷新机制

    转载于:请叫我大苏的 Android屏幕刷新机制 我主要的目的是跟着文章的思路从新走一遍,让自己更好的理解相关的知识点。建议该文章最好能读三遍,第一遍快速阅读,了解主要讲解了...

  • 120
    走向灵活软件之路-面向对象的六大原则

    前言 关于设计模式六大设计原则的资料网上很多,但感觉很多地方解释地都太过于笼统化,特此再总结一波。 优化第一步-单一职责原则SRP 单一职责原则(Single Respons...

  • 120
    Android 屏幕刷新机制

    转载于:请叫我大苏的 Android屏幕刷新机制 我主要的目的是跟着文章的思路从新走一遍,让自己更好的理解相关的知识点。建议该文章最好能读三遍,第一遍快速阅读,了解主要讲解了...

  • 120
    Android 屏幕适配方案

    前言 本文为自身的总结与结合其他文章引用而成,分别为: wangwangli6:Android开发:最全面、最易懂的Android屏幕适配解决方案 jiashuai94:安卓...

  • 看源码跳转更方便点

    Android 7.0 语言设置爬坑

    本文为原创文章,如需转载请注明出处,谢谢! 最近项目出现一个语言设置的 bug,情况是这样:在程序中,语言默认选择的是「跟随系统」(系统语言列表中「简体中文」是第一个),然后...

  • public void setLocale(@Nullable Locale loc) {
    setLocales(loc == null ? LocaleList.getEmptyLocaleList() : new LocaleList(loc));
    }
    public void setLocales(@Nullable LocaleList locales) {
    mLocaleList = locales == null ? LocaleList.getEmptyLocaleList() : locales;
    locale = mLocaleList.get(0);
    setLayoutDirection(locale);
    }

    setLocale 后被设置的语言会加到 LocaleList 的第一个的原因是setLocale 后会重新生成一个LocaleList ,你设置的Locale 会变成第一个;
    public LocaleList(@NonNull Locale... list) {
    if (list.length == 0) {
    mList = sEmptyList;
    mStringRepresentation = "";
    } else {
    final Locale[] localeList = new Locale[list.length];
    final HashSet<Locale> seenLocales = new HashSet<Locale>();
    final StringBuilder sb = new StringBuilder();
    for (int i = 0; i < list.length; i++) {
    final Locale l = list[i];
    if (l == null) {
    throw new NullPointerException("list[" + i + "] is null");
    } else if (seenLocales.contains(l)) {
    throw new IllegalArgumentException("list[" + i + "] is a repetition");
    } else {
    final Locale localeClone = (Locale) l.clone();
    localeList[i] = localeClone;
    sb.append(localeClone.toLanguageTag());
    if (i < list.length - 1) {
    sb.append(',');
    }
    seenLocales.add(localeClone);
    }
    }
    mList = localeList;
    mStringRepresentation = sb.toString();
    }
    }

    Android 7.0 语言设置爬坑

    本文为原创文章,如需转载请注明出处,谢谢! 最近项目出现一个语言设置的 bug,情况是这样:在程序中,语言默认选择的是「跟随系统」(系统语言列表中「简体中文」是第一个),然后...