
Android
文章平均质量分 64
拥小抱
我比较低调,所以暂无相关介绍。因为菜,所以低调~~~~~~~
展开
-
2.7.x Flutter
flutter dart事件模型原创 2022-08-23 15:52:31 · 581 阅读 · 1 评论 -
2.3.1 View绘制流程
View绘制 ViewRootImpl原创 2022-07-18 21:51:31 · 246 阅读 · 0 评论 -
2.6.2 内存泄漏
Android 内存泄漏 LeakCanary原创 2022-07-15 16:39:33 · 284 阅读 · 0 评论 -
3.2.1 Java多线程常见方法
让线程进入等待状态,直到被notify。线程释放锁。(只能在同步方法中调用)同上,导致线程进入等待状态直到它被通知或者经过指定的时间。随机选择一个在该对象上调用wait()方法的线程,解除其阻塞状态。(只能在同步方法中调用)解除所有那些在该对象上调用wait方法的线程的阻塞状态。(只能在同步方法中调用)FAQ:为什么要在synchronized方法或代码块中调用?这几个方法要求当前正在运行object.wait()方法的线程拥有object的对象锁。即使你确实知道当前上下文线程确实拥有了对象锁,也不能将o原创 2022-07-10 22:03:17 · 657 阅读 · 0 评论 -
2.2.1 Handler消息驱动机制
Handler机制 内存泄漏原创 2022-06-12 21:09:58 · 242 阅读 · 0 评论 -
3.2.2 Java同步关键字和类
查看字节码发现:MONITORENTER,MONITOREXIT; FLAG:ACC_SYNCHRONIZED。每个对象对应一个Monitor(监视器锁)对象。synchronized基于进出Monitor对象,实现代码块的同步。它的底层依赖操作系统的Mutex Lock(互斥锁)。他是重量级锁性能低。(Monitor(又称管程),在Java中是ObjectMonitor(JVM源码中C++实现)来实现管程。它是对互斥量和信号量的封装,依赖于底层操作系统的Mutex Lock实现,操作系统实现线程之间的切原创 2022-05-23 23:20:10 · 317 阅读 · 0 评论 -
2.1.2 app启动
app启动流程1 在 Launcher 点击 app,向 AMS 发送请求【Binder机制】2 AMS 先 pause Launcher,然后向 Zygote 请求创建新进程【Framework启动】。后者通过socket通信。(system_server进程中,调用到了Process.start() 方法,初始化参数之后写入到 socket 中,然后阻塞等待 Zygote 返回子进程pid。)3 Zygote 通过socket收到消息( runSelectLoop()循环接收消息 ),用 for原创 2022-04-11 16:43:30 · 371 阅读 · 0 评论 -
2.3.x 事件分发
简述:在软件层面,读入和分发触摸事件的是系统服务 InputManagerService,实际上是jni层的 NativeInputManager。NativeInputManager 里的两个对象 EventHub 和 InputManager。EventHub监听设备节点,收集原始的输入事件。InputManager 中是生产者消费者模型。InputReader从EventHub读取输入事件存入队列,InputDispatcher从队列事件取出事件分发。事件由InputChannel跨进程传递原创 2022-01-11 20:14:30 · 552 阅读 · 0 评论 -
1.7 巧用数据结构
巧用map1 和为K的子数组https://www.lintcode.com/problem/1844/2原创 2021-11-24 11:27:47 · 1593 阅读 · 0 评论 -
1.4.2 链表-中等
链表一些中等难度的题目大多是在简单的操作上进行扩展。删除链表的倒数第 N 个结点https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = null, tar = head, tail = tar; for(int i=1 ; i<n ;i++原创 2021-11-23 20:30:47 · 1796 阅读 · 0 评论 -
安卓面试集总目录(编辑中)
1 算法 1.1 排序 1.2 查找 1.3 动态规划 1.4 链表 1.5 树 1.6 字符串(数组)2 Android 2.1 组件 2.2 异步 2.3 View原创 2021-11-22 20:08:14 · 1827 阅读 · 0 评论 -
获取app流量使用、启动时间等信息
获取手机安装的app private void test() { PackageManager pm = getPackageManager(); // Return a List of all packages that are installed on the device. List&lt;PackageInfo&gt; package...原创 2019-03-12 10:19:02 · 1393 阅读 · 0 评论 -
简单方便快捷的Android引导页 高亮 浮层(cguide)
效果图简单的步骤导入库使用第三方库https://github.com/jcguide/cguide引入在build.gradle中配置 allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.git...原创 2018-12-19 10:56:17 · 1792 阅读 · 1 评论 -
薛定谔的OkHttp
薛定谔的猫:在一个盒子里有一只猫,以及少量放射性物质。之后,有50%的概率放射性物质将会衰变并释放出毒气杀死这只猫,同时有50%的概率放射性物质不会衰变而猫将活下来。根据经典物理学,在盒子里必将发生这两个结果之一,而外部观测者只有打开盒子才能知道里面的结果 。在量子的世界里,当盒子处于关闭状态,整个系统则一直保持不确定性的波态,即猫生死叠加。猫到底是死是活必须在盒子打开后,外部观测者观测...原创 2018-11-14 20:41:32 · 312 阅读 · 0 评论 -
【Android】——单元测试、JUnit4、Mockito、Dagger2等
单元测试JUnit4单测工具JUnit4常用注解TestBeforeAfterBeforeClassAfterClass一个JUnit4的单元测试用例执行顺序IgnoreAssert类Assert类中验证结果的方法assertEqualsexpected actualassertEqualsexpected actual toleranceassertTrueboolean原创 2017-12-27 19:53:46 · 1292 阅读 · 0 评论 -
【Android】の基础——OkHttp
OkHttp使用同步方式异步方式拦截器OkHttp请求过程解析Dispatcher类同步请求的执行流程异步请求的执行流程Volley和OkHttp对比VolleyOkHttpOkHttp使用同步方式OkHttpClient client = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();原创 2017-10-21 11:36:35 · 274 阅读 · 0 评论 -
【Android】の基础——进程优先级
系统根据在进程中在运行的组件及组件的状态,为每一个进程分配了一个优先级等级。优先级最低的进程首先被杀死。这个进程重要性的层次结构主要有五个等级。 五个进程等级1.前台进程(Foreground process)是前台进程的三种情况:进程持有一个正在与用户交互的Activity。进程持有一个Service,这个Service处于这几种状态:Service与用户正在交互的Activity绑定。Se原创 2017-10-19 10:34:29 · 233 阅读 · 0 评论 -
【Android】の基础——ANR和AsyncTask
ANRApplication No Response,应用程序无响应,因为在主线程中进行过多的耗时操作就会堵塞主线程从而造成ANR,产生的原因主要有三个Activity耗时超过5s,Broadcast Receiver超过10s,Service超过20s。ANR的分析通过Log和trace.txtANR的避免将所有耗时操作,比如访问网络,Socket 通信,查询大量 SQL 语句,复杂逻辑计算等都放原创 2017-10-05 13:26:41 · 930 阅读 · 0 评论 -
【Android】の基础——ListView和RecyclerView缓存机制
ListView的RecycleBinRecycleBin机制例子RecyclerView缓存Recycler两者对比ListView缓存RecyclerView缓存ListView和RecyclerView其他的区别ListView的RecycleBin我们在自定义ListView,重写Adapter的getView方法时,会注意到一个convertView参数。那么它从何而来?这原创 2017-10-04 14:26:11 · 463 阅读 · 0 评论 -
【Android】の基础——布局优化和过度绘制
在提高app性能上面,除了在内存上优化,还可以在布局上优化。布局优化通过<include>、<merge>标签使用<include>引入其他的布局。 使用<merge>减少视图层级结构。通过ViewStub进行盐池加载ViewStub是一个轻量级的View,它是一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Inflate布局的时候,只有ViewStub会被原创 2017-10-03 15:18:22 · 329 阅读 · 0 评论 -
【Android】の基础——IPC(进程间通信)
各种方式比较Bundle通过Bundle的优点通过Bundle的缺点文件通过文件的优点缺点文件的缺点Socket使用Socket的优点使用Socket的缺点AIDL使用AIDL优点使用AIDL缺点Messager使用Messager优点使用Messager缺点ContentProvider使用ContentProvider优点使用ContentProvider缺点Binde原创 2017-09-19 09:48:14 · 551 阅读 · 0 评论 -
【Android】の基础——Volley框架
核心类:Request:表示一个请求的抽象类。StringRequest、JsonRequest、ImageRequest 都是它的子类,表示某种类型的请求。RequestQueue:表示请求队列,里面包含一个CacheDispatcher(该线程处理从缓存请求)、 NetworkDispatcher数组 (该线程处理从网络请求),一个ResponseDelivery(返回结果分发接口),Ca原创 2017-09-10 11:30:53 · 319 阅读 · 0 评论 -
【Android】の基础——内存溢出&内存泄漏&UIL
一内存泄露如何避免内存泄漏内部类引用导致Activity的泄漏Activity Context被传递到其他实例中临时Bitmap对象的及时回收注意WebView的泄漏注意CursorFile是否及时关闭内存溢出使用更加轻量的数据结构Bitmap和ImageLoader框架避免内存泄露其他Universal-Image-Loader工作流程内存缓存Lr原创 2017-09-04 22:08:20 · 500 阅读 · 0 评论 -
【Android】の基础——消息处理机制
这次主要谈谈以Handler、MessageQueue和Looper为核心的消息处理机制。故事话说:一家公司,里面有很多个办公室分别负责处理不同的业务,每个办公室都有一个工作簿,每次有新的业务需要处理,提出申请的部门就会把需要处理的业务告诉负责该业务办公室的干事,这个干事就把需要处理的业务写到了工作簿上面。每个办公室都有一个办公室主任,他的职责就是不断的浏览工作簿,然后按照顺序分配,当他浏览到这条任原创 2017-03-26 18:47:27 · 387 阅读 · 0 评论 -
【Android】の基础——BroadcastReceiver
BroadcastReceiver广播接收者(简称广播)在安卓开发中应用广泛,使用起来也很简单。注册方式首先创建一个BroadcastReceiver:package com.scott.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.原创 2017-03-09 20:28:25 · 298 阅读 · 0 评论 -
【Android】の基础——View事件分发
事件分发机制从一个故事讲起事件分发机制这个系列准备分享一些自己有独特见解的知识点。从一个故事讲起用户点击屏幕会触发一个MotionEvent,它就是我们要进行分发的事件。事件分发的最终目标是希望有一个View能够给他返回一个True,即进行了处理(消耗该事件)。在这里,我们把事件分发的过程,比喻成一个大学生event(MotionEvent)想要在大学(Activity)中通过加入社团(ViewG原创 2017-03-08 21:16:18 · 360 阅读 · 0 评论 -
【Android】の基础——Animation
AnimationAndroid的动画主要分为三种: 1. View Animation视图动画(Tween Animation补间动画) 2. Drawable Animation 帧动画 3. Property Animation 属性动画AnimationView Animation视图动画补间动画Drawable Animation帧动画Property Animation属性动原创 2017-03-07 22:02:51 · 393 阅读 · 0 评论 -
【Android】の基础——自定义View和SurfaceView
View的绘制过程measure过程layout过程draw过程View的绘制过程View的绘制流程主要由三部分组成,依次是:measure,layout,draw。measure过程测量View宽高的过程。layout过程确定View在父容器的位置的过程。draw过程绘制View的过程。原创 2017-03-04 19:28:10 · 618 阅读 · 0 评论 -
【Android】の基础——Service
ServiceServiceService生命周期Service启动方式Service与Activity通信Service生命周期Service启动方式第一种形式:通过startService()启动Service: 如果Service没被创建先执行onCreate(),再执行onStart()方法,Service开始运行。如果Service已经存在,则只调用onStart()方法。只原创 2017-03-02 21:11:24 · 331 阅读 · 0 评论 -
【Android】の基础——Activity和Fragment
ActivityActivity生命周期Activity生命周期与Fragment关系Activity与Fragment通信Activity启动模式onSaveInstanceState 和 onRestoreInstanceStateFragment问题add和replace区别添加替换相同之处每次add和replace都要走一遍fragment 的周期ActivityActiv原创 2017-03-01 20:49:34 · 475 阅读 · 0 评论