_yifan

Coder


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

Mac 安装zsh

发表于 2019-07-27 Bearbeitet am 2023-03-21 分类于 zsh , Mac

一、安装zsh

  • 1、Mac终端默认bash,但其实已经自带zsh,只需运行切换命令,再重新打开终端
    1
    chsh -s /bin/zsh
阅读全文 »

Android 架构演进

发表于 2019-07-23 Bearbeitet am 2023-03-21 分类于 Android , 架构 , MVC、MVP、MVVM

MVC

1、角色

  • View
    • android.view.View及其子类+布局文件作为view层,负责视图的创建渲染;
  • Controller
    • 通常是Activity/Fragment作为Controller角色,负责视图逻辑、业务流程处理;
  • Model
    • SQLite、IO或网络请求作为model层;
      阅读全文 »

Android备忘

发表于 2019-07-22 Bearbeitet am 2023-03-21 分类于 Android

字符

1、常用转义字符

转义字符均以&开始,以;结尾

阅读全文 »

Android DataBinding

发表于 2019-07-21 Bearbeitet am 2023-03-21 分类于 Android , MVVM

一、DataBinding

  • 观察者模式,底层基于Observable,通过synchronized实现线程安全;
  • 可用于MVVM架构,实现ViewModel,抽离数据与UI;
  • 不仅仅是MVVM,它可用于任何希望数据与UI抽离解耦的地方,比如:
    • RecyelerView的Holder;
    • 优化Glide加载图片;
  • 虽然解耦,但对xml布局文件有侵入式修改,对布局文件复用有一定的影响,编译器会对相应的标签进行处理成LayoutInflater可识别的形式,所以定义之后代码中也可以不使用;
  • @{}布局中的表达式除了简单判断、转换之外,不应该做复杂的代码实现;
  • 官方关系示例图,MVVM中的DataBinding
    DataBinding实现MVVM
阅读全文 »

Android 单例模式

发表于 2019-07-20 Bearbeitet am 2023-03-21 分类于 Android , 设计模式

单例模式

一、特点

  • 构造函数私有
  • 通过静态函数获取实例对象
  • 确保任何情况下全局只有一个实例对象
  • 反射、反序列化、克隆也不会生成多个实例

二、定义

阅读全文 »

Mac 双击执行shell

发表于 2019-07-20 Bearbeitet am 2023-03-21 分类于 Mac , Shell
  • 1)创建shell脚本
1
vim hello.sh
  • 2)写入命令,并保存
1
2
3
#!/bin/bash

echo 'hello mac shell'
阅读全文 »

Android WebView内存泄漏

发表于 2019-07-16 Bearbeitet am 2023-03-21 分类于 Android , WebView

WebView内存泄漏

原因

webview引起的内存泄漏主要是因为org.chromium.android_webview.AwContents 类中注册了component callbacks,但是未正常反注册而导致的。
org.chromium.android_webview.AwContents 类中有这两个方法 onAttachedToWindow 和 onDetachedFromWindow;系统会在attach和detach处进行注册和反注册component callback;

阅读全文 »

Android 数据结构

发表于 2019-07-14 Bearbeitet am 2023-03-21 分类于 Android

image.png

一、List接口

  • 特点
    • 继承Collection接口,元素时有序的,具有列表的功能,元素顺序均是按照添加的先后顺序进行排列的,不管访问多少次,元素位置不变;
    • 允许重复的元素,允许多个null元素;
    • 可随机访问包含的元素,可在任意位置上增、删元素;
    • 用Iterator实现单项遍历,也可用Iterator实现双向遍历;

      注意:用Iterator进行遍历的时候,不应该调用List、Set、Map等类中的remove()方法删除元素,否则会抛出异常,如果需要在遍历时删除元素,应该使用Iterator.remove()方法;

阅读全文 »

Android 内存优化相关(未完成)

发表于 2019-07-13 Bearbeitet am 2023-03-21 分类于 Android

引用方式

强引用(StrongReference)

  • 使用
1
Object ojb = new Object();
  • 特点
  • 直接访问对象,但某些情况可能引起内存泄漏;
  • 当对象被强引用所关联时,JVM不会回收该对象,即使内存不足的情况下,JVM会直接抛出OutOfMemory错误1而不会回收该类对象;
阅读全文 »

Android JS交互方式

发表于 2019-07-13 Bearbeitet am 2023-03-21 分类于 Android
  • 1.通过schema方式,使用shouldOverrideUrlLoading方法对url协议进行解析。这种js的调用方式与ios的一样,使用iframe来调用native代码。
  • 2.通过在webview页面里直接注入原生js代码方式,使用addJavascriptInterface方法来实现。
    在android里实现如下:
    1
    2
    3
    4
    5
    6
    7
    class JSInterface {
    @JavascriptInterface //注意这个代码一定要加上
    public String getUserData() {
    return "UserData";
    }
    }
    webView.addJavascriptInterface(new JSInterface(), "AndroidJS");
阅读全文 »
1234…7
博主

博主

63 日志
52 分类
69 标签
粤ICP备18121454号 © 2023 power by yifan