- 博客(29)
- 收藏
- 关注
原创 如何将项目提交到GitHub,腾讯T2手把手教你
show diff of all staged or unstated changes.也即比较woking directory和上次提交之间所有的改动.如果想看自从某个版本之后都改动了什么,可以用:git diff [version tag]跟log命令一样,diff也可以加上–stat参数来简化输出.git diff [branchA] [branchB]可以用来比较两个分支.它实际上会返回一个由A到B的patch,不是我们想要的结果.一般我们想要的结果是两个分支分开以后各自的改动都是什么
2021-09-08 21:20:42
184
原创 如何在-Android-中完成一个-APT-项目的开发?,受益匪浅
####4.ElementsElements可以理解为一个工具类,它的功能就是操作Element对象,对Element对象进行一些处理或取值。####5.TypeElementTypeElement是Element子类,它表示这个元素是一个类或者接口。当Element满足条件时候,可以强转为一个TypeElement对象。####6.VariableElementVariableElement是Element子类,它表示这个元素是一个变量、常量、方法、构造器、参数等。当Element满足条件时候,
2021-09-08 21:19:00
315
原创 女程序员的逆袭之路,金九银十
面试想拿 15K,HR 说你只值 10K,我前三面白面的啊!经理都没你这么嚣张…本三,再普通不过的学校,没啥学术氛围,30多个男生5个女生,科班虽然没啥学术氛围,但是上课我会和舍友经常坐在第一排,别想多了,没这么好学,其实就是学校小,从宿舍到教室10几分钟,为了能在宿舍多呆一会,每次上课前一分钟我们总能“按时到”,这也就导致第一排的宝座非我莫属,不得不接受老师的唾沫横飞课程学了java、Android、mysql、oracle、C#、HTML等就这样和大部分大学生一样,我度过了我的大学,一眨眼.
2021-09-08 21:17:25
222
原创 太厉害了,终于有人能把TCP-IP-协议讲的明明白白了,超详细讲解
标准既定的端口号:这种方法也叫静态方法。它是指每个应用程序都有其指定的端口号。但并不是说可以随意使用任何一个端口号。例如 HTTP、FTP、TELNET 等广为使用的应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在 0~1023 之间;除知名端口号之外,还有一些端口号被正式注册,它们分布在 1024~49151 之间,不过这些端口号可用于任何通信用途。时序分配法:服务器有必要确定监听端口号,但是接受服务的客户端没必要确定端口号。在这种方法下,客户端应用程序完全可以不用自己设置端口号.
2021-09-08 21:13:47
312
原创 大厂镀金是鬼话?Android开发大厂裸辞,顺利通过阿里Android岗面试
有人说,大厂镀金的意思是不会太卡简历,或者面试时如果有些地方没答好,但在上家公司确实表现不错,也能通过面试。归根结底,面试水平和大厂履历没什么关系,实力才是关键。如果没有实力,哪怕把所有大厂镀了一遍也没用。有人说,自己最近就面了几个大厂的水货,问什么都不会,别再抱着镀金的想法了,真金才是硬通货。网友给楼主下了结论:菜是原罪。有人说自己是三线中厂出来的,准备了大半年,除了刚开始练手的挂过,后面就没在技术面挂过。有人说自己是破小厂出来的,也是985硕,还是非科班出身,也面了虾皮、鹅厂..
2021-09-08 21:11:59
187
原创 OkHttp3源码详解之Okhttp任务队列工作原理(三),初面蚂蚁金服
new SynchronousQueue(), Util.threadFactory(“OkHttp Dispatcher”, false));}return executorService;}1.2 Call对象了解源码或使用过`okhttp`的都知道。 `okttp`的操作元是Call对象。异步的实现是`RealCall.AsyncCall`。而 `AsyncCall`是实现的一个`Runnable`接口。final class AsyncCall.
2021-09-06 22:10:57
64
原创 OkHttp3源码详解之 okhttp连接池复用机制(一,2021吊打面试官系列
在timeout空闲时间内,连接不会关闭,相同重复的request将复用原先的connection,减少握手的次数,大幅提高效率。并非keep-alive的timeout设置时间越长,就越能提升性能。长久不关闭会造成过多的僵尸连接和泄露连接出现。那么okttp在客户端是如果类似于客户端做到的keep-alive的机制。2、连接池的使用========连接池的类位于okhttp3.ConnectionPool。我们的主旨是了解到如何在timeout时间内复用connection,并且有效的对其进行回
2021-09-06 22:09:21
1584
原创 OkHttp3源码详解(四)缓存策略,万分膜拜
//如果当前缓存不符合要求,将其closeif (cacheCandidate != null && cacheResponse == null) { closeQuietly(cacheCandidate.body()); // The cache candidate wasn't applicable. Close it.}// 如果不能使用网络,同时又没有符合条件的缓存,直接抛504错误if (networkRequest == null &&
2021-09-06 22:07:39
291
原创 OkHttp3源码详解(二) 整体流程,12道Android高级面试题
异步:1. void enqueue(Callback responseCallback, boolean forWebSocket) {2. synchronized (this) {3. if (executed) throw new IllegalStateException("Already Executed");4. executed = true;5. }6. client.dispatcher().enqueue(new AsyncCal
2021-09-06 22:06:04
212
原创 OkHttp3-只会用是不够的,还得懂这些,android视频开发的面试问题
final Headers headers; final @Nullable RequestBody body; final Map<Class<?>, Object> tags; public static class Builder { @Nu
2021-09-06 22:04:21
149
原创 NDK开发(一),百度Android岗一面+二面内容
/><Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="button"/>```MainActivity.java```public class MainActivity extends AppCompatActivity {@Overridep...
2021-09-06 22:02:31
82
原创 NDK 之C,2021Android面试总结
IntSequence seq(1); //从1开始的序列//从1开始向容器col1中插入9个元素generate_n(back_inserter(col1), 9, seq);//仍然从1开始向容器col1中插入9个元素generate_n(back_inserter(col1), 9, seq); generate函数#include <iostream>#include <algorithm>#include <array>#include &l
2021-09-06 22:00:43
111
原创 Framework学习(四,BAT面试&高级进阶
android:enabled="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="andro...
2021-09-05 20:45:09
50
原创 Fragment全解析系列(一,音视频开发进阶指南
在系统要把app回收之前,系统会把Activity的状态保存下来,Activity的FragmentManager负责把Activity中的Fragment保存起来。在“内存重启”后,Activity的恢复是从栈顶逐步恢复,Fragment会在宿主Activity的onCreate方法调用后紧接着恢复(从onAttach生命周期开始)。getActivity()空指针可能你遇到过getActivity()返回null,或者平时运行完好的代码,在“内存重启”之后,调用getActivity()的地方却返
2021-09-05 20:43:30
214
原创 Flutter(九,上岸蚂蚁金服
return Container(child: Center(child: Text("顶部Widget",),),);}}实现方式和底部是一样的。**实现可以移动的容器**上面两个Widget都是单纯用来显示的Widget,因此继承了StatelessWidget。接下来我们需要根据手势动态移动顶部的Widget,因此需要继承StatefulWidget。// 顶部Widgetclass HomePageWidget extends StatefulWidget {@overri.
2021-09-05 20:41:58
239
原创 Flutter系列(五,阿里Android研发岗二面
color: Colors.grey, child: PageView.builder( controller: controller, itemBuilder: (context, index) { return new Center( child: new Text('页面 ${index}'), ); }, ), ));}}![](htt...
2021-09-05 20:40:25
83
原创 Flutter数据库的使用,推荐
Database database = await openDatabase(path, version: 1,onCreate: (Database db, int version) async {// 创建数据库时创建表await db.execute( 'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');});复制代码3. 增在事务中向表中插入几条数据
2021-09-05 20:37:06
606
原创 Leakcanary(二,冲刺7天拿下Offer
}HeapDumper heapDumper = this.heapDumper;// dump 内存泄漏处的 heap 信息,写入 hprof 文件if (heapDumper == null) { heapDumper = defaultHeapDumper();}WatchExecutor watchExecutor = this.watchExecutor; // 线程控制器,在 onDestroy() 之后并且主线程空闲时执行内存泄漏检测if (watchExecutor =.
2021-09-03 20:17:31
74
原创 lambda表达式(3)-shawn,如何保证高可用
接口中有且仅有一个抽象方法:修饰符 interface 接口名称 { public abstract 返回值类型 方法名称(可选参数信息); // 其他非抽象方法内容 }由于接口中的public abstract 这些关键字都可以省略,所以上述函数式接口可以写成如下的形式:修饰符 interface 接口名称 { 返回值类型 方法名称(可选参数信息); // 其他非抽象方法内容 }抽象方法定义:没有方法体(没有大括号)的方法,抽象方法必须使用abstr
2021-09-03 20:15:58
54
原创 Kotlin学习手记,android音视频开发
如果是应用的话,主要掌握框架级别的使用即可,语言级别的支持api来源于标准库,写起来比较麻烦也非常难理解。这里launch会进行一次调度 ,delay会进行一次调度,每次调度完成会执行一次resume, 最终协程体执行完毕会执行一次resume, 所以内部有n个挂起点的协程体会执行n+2次resume.DEFAULT 立即开始调度 和 UNDISPATCHED 立即开始执行协程体,这两个含义的区别是 DEFAULT 只是立即启动协程执行可能是异步的,而后者是直接执行协程体中的代码了。LAZ...
2021-09-03 20:14:11
211
原创 Kotlin中-四个提升逼格的关键字你都会了吗?,写得太好了
User user = new User("Kotlin", 1, "1111111"); String var4 = "my name is " + user.getName() + ", I am " + user.getAge() + " years old, my phone number is " + user.getPhoneNum(); System.out.println(var4); int result = 1000; String var3 = "result: ...
2021-09-03 20:12:29
129
原创 RecyclerView-的复用机制,终于搞明白了
public final class Recycler {final ArrayList mAttachedScrap = new ArrayList<>();ArrayList mChangedScrap = null;final ArrayList<ViewHolder> mCachedViews = new ArrayList<>();RecycledViewPool mRecyclerPool;private ViewCacheExtension m
2021-09-02 20:08:36
519
原创 RecyclerView 性能优化 _ 把加载表项耗时减半 (三),最新出炉
var width = 0var height = 0// 上下左右边距var topMargin = 0var bottomMargin = 0var leftMargin = 0var rightMargin = 0// 用于保存测量宽高结果的变量var measuredWidth = 0var measuredHeight = 0// 上下左右用于描述可绘制对象所处矩形var left = 0var right = 0var top = 0var bottom = 0/.
2021-09-02 20:06:50
158
原创 RecyclerView 事件分发原理实战分析,【面试必备】
} } return true;} 但其实这样是无法实现需求的,因为如果按照我们目前的实现方案,是期望在 dy 大于阈值时,RecyclerView 可以完全对 MOVE 事件放手,将事件下沉到 item view 中去处理,根据事件分发规则,这就需要 RecyclerView 的 `onInterceptTouchEvent()` return false,然后子 View 即 item view 的 `onTouchEvent()` 会被调用。进而实现窗...
2021-09-02 20:05:07
234
原创 RecyclerView 事件分发原理实战分析,Android面试题
最近在解决 RecyclerView 滑动冲突问题时,遇到了使用 OnItemTouchLister 无法解决问题的场景,本篇文章将结合实际案例,重点介绍如下几个问题:RecyclerView 事件分发执行流程简要分析添加 OnItemTouchListener 为什么不能解决问题?该场景下最终的解决方案业务需求在一个视频通话界面中,放置一个发言方列表,这个列表支持横向滑动,称为小窗列表, 处于背景的窗口称之大窗,当用户想将小窗列表中的某一个 item 切换到大窗时,可以使用手指
2021-09-02 20:03:21
322
1
原创 React技术---速学!利用react技术实现类似某宝的tab切换效果,太牛了
text: "寻车拖车"},{ value: 13, text: "解压抵押"},{ value: 14, text: "抵押核验"}]}filterDom = () => {let filterJson = label;let arr = filterJson.option;return ({arr.map((item, index) => {if (item.value == this.state.filterSelect) {retur...
2021-09-02 20:01:31
250
原创 QMUI 2 终于来了,真香
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fll9pV71-1630583987798)(https://user-gold-cdn.xitu.io/2019/12/1/16ebd1b59678f50e?imageView2/0/w/1280/h/960/ignore-error/1)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjq1lpio-1630583987800)(https://user-gold-cdn.xitu.io/
2021-09-02 19:59:59
521
原创 Android 7,Android开发必学
android.os.FileUriExposedException: file:///storage/emulated/0/Download/xxxAppName.apk exposed beyond app through Intent.getData()手机端调用的代码如下:Intent intentUpdate = new Intent(“android.intent.action.VIEW”);intentUpdate.setFlags(Intent.FLAG_ACTIVITY_NEW
2021-09-01 11:37:41
461
原创 andriod搭建自己的轮询框架,大佬带你看源码
PollingUtil 用于控制轮询服务的开始和结束 使用PollingUtil中的startPollingService来根据action和context生成一个PendingIntent,并将PendingIntent交给PollingScheduler来处理。PollingScheduler是一个线程池控制类。public class PollingUtil { /** * 开始轮询服务 */ public static void startPollingServ
2021-09-01 11:35:51
95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人