Jfson‘s blog

慢慢来,比较快

Android dex(关于Dalvik、ART、DEX、ODEX、JIT、AOT、OAT)

疑问:class,dex,odex,vdex的区别? 参考文章 android-art-googlt-doc Android 8.0 VDEX机制简介 关于Dalvik、ART、DEX、ODEX、JIT、AOT、OAT art 1.art Android Runtime (ART) 是运行 Android 5.0(API 级别 21)及更高版本的设备的默认运行时。ART 使用设备自带的......

硬件加速是什么?

Android 中的 Hardware Layer 详解 Android硬件加速原理与实现简介 硬件加速,实际上应该叫 GPU 加速,软硬件加速的区别主要是图形的绘制究竟是 GPU 来处理还是 CPU,如果是 GPU,就认为是硬件加速绘制,反之,则是软件绘制。 123456789CPU更擅长复杂逻辑控制,而GPU得益于大量ALU和并行结构设计,更擅长数学运算。页面由各种基础元素(Displa......

Bitmap-匿名内存-内存映射

1231.Bitmap2.Ashmem匿名共享内存是什么?3.mmap内存映射是什么? 1.Bitmap1.1 Bitmap内存Bitmap官方介绍 Bitmap官方介绍中文译文 Android管理Bitmap内存使用的演变进程: 在Android 2.2 (API level 8)以及之前,当垃圾回收发生时,应用的线程是会被暂停的,这会导致一个延迟滞后,并降低系统效率。 从Android......

直播技术小结

为什么直播相比短视频视频播放而言,会产生发热的情况呢? 第一反应是推拉流,随之而使用的硬解码等硬件相关的操作。在团队分享之后,想到我之前看到《直播疑难杂症排查》和《直播技术详解》这两篇系列文章,提纲非常好,于是决定总结一下,这几年在直播行业的经验问题,以形成自己的知识体系。很多的名词并没有过于深入去解释,算是一个大的提纲吧,每个点都值得深入~ 直播技术参考文章《直播技术详解》系列文 直播......

Android ANR

1.如何导出日志到 anr目录 a.导出anr日志文件:data/anr/traces.txt /anr 由于厂商限制,部分手机使用adb pull的时候,由于权限问题导致无法导出 b.无权限时,使用:adb bugreport /anr 可以将一个包含anr日志的zip包导出到 /anr路径 定位:查看主线程block信息即可:”main” prio=5 tid=1 Blocked......

Kotlin 相关

为什么要用? 官方的Demo 基本都是kotlin,可以相互转换,相互调用 Java 替代语言,更简洁,清晰 null 安全检测,延时初始化 避免了findViewbyid() 协程 ?原理 扩展函数和属性。譬如对String进行扩展 数据data类,自动生成get,set 用类委托来快速实现装饰器模式,不用接口类实现所有的方法();类似Animator.Listener Lambda表达......

《开篇》1. 从何入手开始刷题的?

万事开头难开始之前捋一捋我的收获跟思路。 万事开头难,一开始着手做算法的时候,想必大家跟我的困惑是一样:我的算法不好,我怎么来开始?在大量的search 之后结果告诉我,大概有这么几种: a. 不用怂,就是干,按着推荐的顺序来做就ok *b. 按照 分类 tag 来进行 *c. 按照难度先做 Easy 难度的,再去做 Medium 、 Hard 等 那么看完这些,还是纠结拿不定。于是又......

Android 总结5-IPC

IPC Android 的进程间通信就是 Binder. Android 中一个应用中的多进程: android:process 属性,给四大组件在AndroidMenifest中指定process即可。一般不这么干,在push中使用较多。 多进程带来很多问题: a.静态成员和单例模式完全失效 b.线程同步失效 c.SharedPreferences失效:不支持多进程同时执行写操作......

Android 总结4-四大组件

Activity 1.Activity生命周期(A)onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop (1)一个Activity或多或少会占有系统资源,而在官方的建议中,onPause方法将会释放掉很多系统资源,为切换Activity提供流畅性的保障,而不需要再等多两个阶段,这样做切换更快。 如果如果Activity(A) 切回桌面......

Android 总结3-动画

View动画View动画定义了渐变Alpha、旋转Rotate、缩放Scale、平移Translate四种基本动画,并且通过这四种基本动画的组合使用,可以实现多种交互效果。View动画使用非常简单,不仅可以通过XML文件来定义动画,同样可以通过Java代码来实现动画过程。 1234567891011121314151617//xml实现<?xml version="1.0&q......

Android 总结2-线程

1.Android 中的多线程 1.继承Thread 2.实现Runnable 3.Handler 4.AnsyTask 5.HandlerThread ActivityThread 为 Android 主线程 2.AnsyTask AsyncTask 最好在主线程中初始化。因为AsyncTask需要Handler来将执行结果回调切回主线程,Handler 中Looper.getMainL......

LeetCode 61.Rotate List (Medium)

LeetCode 61.Rotate List (Medium) 12345678910111213141516Given a linked list , rotate the list to the right by k places , where k is non-negative Example 1: Input: 1 -> 2 -> 3 -> 4 -> ......

EventBus分析

EventBus观察者模式订阅后,对类,方法进行反射发送消息。并且支持订阅线程可配置。 123456789101112131415161718192021222324252627282930313233343536private void postToSubscription(Subscription subscription, Object event, boolean isMainThr......

Android总结1-View

​ 附上大量自定义View出现的时候,如何解耦 1.View 什么是View a. 所有View控件:TextView,Button等等 b. 所有ViewGroup(容器):RelativeLayout,LinearLayout。是容器也是View View 事件 MotionEvent:ACTION_DOWN、ACTION_UP、ACTION_MOVE ;手势的落下,抬起,......

LeetCode 20. Valid Parentheses (Easy)

Stack 视频讲解地址 LeetCode 20. Valid Parentheses (Easy) Given a string containing just the characters ‘(’,’)’,’{’,’}’,’[’ and ’]’,determine if the input string is valid.An input string is valid if: 1......

LeetCode 《开篇》

LeetCode 《开篇》 《开篇》 PS: 先更文章,后续更新每道题目详细解读 & 视频通过大概10道题来熟悉,常见的算法题类型:Array ,String,Stack,LinkList,Tree,Dynamic Programming,DFS/BFS,Backtracking,Greedy,Divide and Conquer 本文中的算法题大概需要2-3周来完成 1.Arr......

Daily 2018-12-8

​ 今年诸多事导致太懒惰,从提交记录来看,差了很多,尽管自己也很讨厌,可心态还是又老了一点,做很多无用的事,屯不喝的酒和茶。 ​ 压力大的时候总想去趁周末爬爬山,浪一浪,以为可以放松,回来后还是老样子。解决焦虑的唯一途径就是实现目标。可时间浪费在规划上,言多行少,目前来看,也算有点成效,两个月时间 Rank 100000+ 到现在排名上升6000+。可远远不够…下班到家很累啊,还......

8.原型模式(Prototype)

通过克隆基于现有对象创建对象(克隆羊)当需要一个与现有对象类似的对象时,或者与克隆相比,创建的成本会很高。 示例:Arraylist的clone()123456789101112131415ArrayList<Student> listCopy=(ArrayList<Student>) list.clone();public Object clone() ......

组合模式(Composite)

复合模式允许客户以统一的方式处理单个对象.部分整体模式,是用于把一组相似的对象当作一个单一的对象. 对象嵌套对象。类似的像ArrayList.addAll(ArrayList);再比如:CEO是员工,CEO实体类里还有员工。 12345678910class ArrayList{ public boolean addAll(Collection<? extends......

适配器模式(Adapter)

适配器模式允许您在适配器中包装其他不兼容的对象,以使其与另一个类兼容。 示例:语言学习,绝大多数人学习英语,日语系的同学要学日语 1234567891011121314151617181920212223242526272829303132333435363738class Student { void studyEnglish();}class NormalSt......

pv UV: