自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 3分钟快速搞懂Java的桥接方法,mybatisplus分页原理

public class Child extends Parent {@OverrideInteger get() {return 1;}}Child类重写其父类Parent的get方法,Parent的get方法返回类型为Number,而Child类中get方法返回类型为Integer。将这段代码进行编译,再反编译:javac Child.javajavap -v -c Child.class结果如下:public class Child extends Parent…省略部分结果…

2022-03-16 22:13:17 744

原创 Android Library上传到JCenter仓库实践

apply plugin: ‘com.android.library’apply plugin: ‘com.github.dcendents.android-maven’apply plugin: ‘com.jfrog.bintray’其中com.android.library是android的插件,表示它是一个android library。应用成功后,你会看到插件生成的task,如下图所示:通过这个task,我们可以将我们的library上传到maven仓库当中,现在还不行,我们还得继续完成

2022-03-06 21:30:46 438

原创 Android 底部导航栏 开源库

1920layout:<FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent"/></FrameLayout> <com.wakehao.bar.BottomNavigationBar ... app:fragmentContainerId="@id/fragment_con..

2022-03-06 21:29:21 390

原创 一场赛跑引起的并发知识,安卓开发项目经历

应该有人发现了,因为我们是在main方法中执行比赛的,其他线程单独执行,主main线程执行完就终止了程序,而不会管其他线程有没有结束。这明显和我们想要的不一样,我们需要等所有的选手跑完,才能算比赛结束。那应该怎么优化呢?往下看CyclicBarrier我们这里引入一个知识点CyclicBarrier循环屏障,CyclicBarrier是一组线程互相等待,只有全部到达屏障点以后才能继续执行。可以举个生活场景大巴车进入服务区进行休息,大巴车是要等到所有乘客上车后,才能发车。并不是一个人上车了就可以发车

2022-03-06 17:59:33 101

原创 一个例子学会使用Jetpack Compose Modifier,android地图开发框架

Modifier的操作符都是扩展函数,并不是定义在一起。操作符定义在不同的空间中,可以限制某些操作符只能在特定父Comopsable中使用,避免误用。interface RowScope {fun Modifier.align(alignment: Alignment.Vertical)}复制代码如上,align只能在Row中调用,用来设置子元素在垂直方向如何对齐。子元素不关心其在父容器中如何对齐,因此在外部设置align(Alignment.CenterVertically)后,传给子元素继续使

2022-03-06 17:58:07 391

原创 【译】Flutter 1,hashmap和concurrenthashmap的区别

}如果通过 null 调用此函数肯定会失败,但是还要考虑第二种情况:void main() {// Error case 1: passing a null to files.printLengths(null);// Error case 2: passing list of files, containing a null item.printLengths([File(‘filename1’), File(‘filename2’), null]);}而空安全功能可以使该问题消失了:

2022-03-06 17:55:17 248

原创 仿QQ6,程序员必学之一

import android.util.DisplayMetrics;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;public class mySlidingMenu extends ViewGroup {private View mMenu;private View mContent;private int mScreenWidth;private int

2022-03-05 20:37:10 70

原创 从投递到拿到offer,这份Android面试秘籍一文全解,kotlin开源项目

“emm…”(老哥!你真的是来面试的吗?!)如果你是面试官,你会用一个都不知道公司和岗位职责是什么的人吗?这至少说明了2个问题:1.他对这次面试是不重视的!(那他怎么会对他的工作重视呢?)2.录用他的风险很高!(他要是工作一段时间发现不适合怎么办?)所以我们在面试前,一定要先在网上搜索一下应聘公司的详细资料以及职位信息:百度、脉脉、企查查、看准网,企业官网等都可以获取到。那么提前了解这些信息对我们面试会有哪些方面的帮助呢?1.方便我们准备与之匹配的简历。如果你应聘的是一家做手机

2022-03-05 20:35:45 131

原创 二本吊打985?看到原因,网友们服气了,安卓开发面试题自定义view

如果你也想进军Android开发,可以看一下这位本二毕业生给我发来的他的学习路径,我想你应该会受益匪浅。从他踏进大学的校门开始就知道自己在学历上面的短板,往后只能凭借自己加倍的努力进行弥补。大学期间,他一直很努力,和其他想从事Android开发的同学一样,看了很多博客,看了很多书,还看过源码,跟着学长做过项目……疫情期间还给自己报了一个线上培训班,并给自己制订了完整的学习计划,严格执行,最后才开始准备面试。现在的事实证明,他的努力没有白费,他真的做到了,他完成了自己的目标,找到了薪资满意的工作。

2022-03-05 20:31:30 98

原创 【面经分享】字节抖音Android客户端3,安卓开发kotlin推荐书籍

6. 算法LeetCode 518. 零钱兑换 II题目开始理解错了。最后这个题没完全做出来,面试官让我讲了下思路。7. 反问部门业务?面试评价?我还有什么需要学习的地方吗?面试官反问:这次面试只是为了实习还是说有转正想法的?部门业务开发语言?多久能收到结果通知?一面结束后等了十几分钟,HR 通知第二天二面。二面(1 月 14 日,60 min)1. 自我介绍2. 项目介绍。用到了什么技术栈?ViewModel 的作用是什么?你在 Frag

2022-03-05 20:25:50 208

原创 Glide源码学习九:带你全面了解Glide 4的用法,一线互联网移动架构师设计思想解读开源框架

指定图片大小缓存机制指定加载格式回调与监听1. into()方法2. preload()方法3. submit()方法4. listener()方法图片变换自定义模块使用Generated API结束语系列文章:=====Android面试题:GlideGlide源码学习一:Glide框架介绍、with方法详解Glide源码学习二:load()详解Glide源码学习三:into()详解Glide源码学习四:缓存Glide源码学习五:回调与监听Glide源码学习六:图

2022-03-04 19:57:35 1728

原创 Glide框架解析,ndk开发教程

public static RequestManager with(android.app.Fragment fragment) {RequestManagerRetriever retriever = RequestManagerRetriever.get();return retriever.get(fragment);}public static RequestManager with(Fragment fragment) {RequestManagerRetriever retriever

2022-03-04 19:56:10 2175

原创 GitHub标星7-8K,各级别Android岗最优质面试题集,android实战pdf

这些只有问题,没有解析或者解析不多国内一线互联网公司面试题汇总https://github.com/AweiLoveAndroid/CommonDevKnowledge/blob/master/interview/summary.md集锦,收集了一些面试相关内容,类似于本文,有的比本文更详尽Java / Android 面试资料集锦,一个面试相关的集合https://jingbin.me/2017/02/20/Android%20%E9%9D%A2%E8%AF%95%E8%B5%84

2022-03-04 19:54:45 137

原创 GDP大跳水,“溢价阶层,春招我借这份PDF的复习思路

架构展示层:MVC、MVP、MVVM、Android Architecture Components;架构层:模块化->组件化->插件化->沙盒/双开技术;基础进阶:比如高级自定义View、Android Framework层原理, App 管理机制等等;JNI 和 NDK 开发也是比较常见,5G来了,招聘单位都在给自己公司规划小视频功能,然而我们却连NDK都不懂;学习开发语言:比如Kotlin,做底层C/C++是必不可少的,还有一个最容易忽略的 Java语言本身的高级面向对象

2022-03-04 19:53:20 1371

原创 Flutter自定义Appbar搜索框,看这篇足矣了

SearchAppBar({Key? key, required this.hintLabel}) : super(key: key);final String hintLabel;@overrideState createState() {return SearchAppBarState();}}class SearchAppBarState extends State {late FocusNode _focusNode;///默认不展示控件bool _offstage = true

2022-03-04 19:51:54 1052 1

原创 Flutter简介,flutter消息推送

通过这些SDK,你的应用可以与系统通信,以创建UI组件或访问系统相机。这些组件被渲染到手机屏幕,而相应的事件则被传回给组件。这个架构足够简单,但你仍然不得不为每个平台开发单独的App,因为这些系统组件都是不一样的,更不用提开发语言的不同了。WebView第一个跨平台的框架基于JavaScript 和 WebView,例如 Titanium和一系列相关的框架:PhoneGap, Apache Cordova, Ionic等,在苹果发布iOS之前,他们鼓励第三方开发者为iPhone构建网页应用程序,因此使用

2022-03-04 19:50:29 1241

原创 Flutter开发之——json序列化,三面美团Android岗

dev_dependencies:build_runner: ^2.0.3 #build_runner版本json_serializable: ^4.1.2 #json_serializable版本三 根据json创建序列化类3.1 接口文件API:https://www.wanandroid.com/article/list/0/json3.2 序列化类(Article.dart)import ‘package:json_annotation/json_annotation.

2022-03-04 19:49:04 1204

原创 Flutter中的http网络请求,30岁以后搞Android已经没有前途

responseData = responseData.replaceAll("{", “\n{”);debugPrint(‘response.data=$responseData’);}} on DioError catch (e) {print(“exception: $e”);}return;}关于代理设置代码块,在Dio 2.x版本和1.x版本上设置的方式是不同的,这是因为Dio 2.x版本代码重构的原因,1.x代码上onHttpClientCreate方法放在了Dio类中,而2.x

2022-03-04 19:44:49 345

原创 RecycleView自定义LayoutManager实现Gallery效果,Android体系化进阶学习图谱

老规矩,先上图:这个效果其实就是在上篇的HorizontalLayoutmanager的基础上进行修改1、可以看到条目的起始位置是从屏幕的一半的地方再减去item宽度的一半的位置开始,而且每个item都是叠在上一个item宽度一般的位置mStartX = getWidth()/2 - getItemShowWidth(); for (int i = 0; i < getIte

2022-03-02 23:50:33 472

原创 Picasso图片框架加载图片 使用及缓存问题,flutter微信小程序

import java.io.File;import android.content.Context;import android.text.TextUtils;import android.widget.ImageView;import com.squareup.picasso.Picasso;import com.squareup.picasso.RequestCreator;public class PicassoUtil {public static void displayImage

2022-03-02 23:47:43 542

原创 orcle游标学习实例,下血本买的

使用游标属性游标名 % FOUND 如果游标提取到了新数据 则返回TRUE 如果没有提取到新数据 则返回FALSE。 但这个属性使用有两个前提 第一游标必须处于打开状态 否则 出现非法游标的操作,第二游标必须 FETCH 否则 返回 NULL。游标名 % NOTFOUND 如果游标提取到了新数据 则返回FALSE 如果没有提取到新数据 则返回TRUE。 但这个属性使用有两个前提 第一游标必须处于打开状态 否则 出现非法游标的操作,第二游标必须 FETCH 否则 返回 NULL。例如:declare

2022-03-02 23:46:18 86

原创 OpenGL ES与EGL的关系(二十一),安卓面试题2018

EGLSurface surface;EGLContext context;//调用eglGetDisplayEGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);eglInitialize(display, 0, 0);eglChooseConfig(display, attribs, &config, 1, &numConfigs);//调用eglCreateWindowSurface将Surface s转换为本地窗口

2022-03-02 23:44:52 502

原创 OpenCV 人脸识别、图片相似度检测,面试字节跳动被问Android屏幕适配方案

@param srcMat@param desMat*/public void comPareHist(Mat srcMat, Mat desMat) {srcMat.convertTo(srcMat, CvType.CV_32F);desMat.convertTo(desMat, CvType.CV_32F);double target = Imgproc.compareHist(srcMat, desMat, Imgproc.CV_COMP_CORREL);textView.s..

2022-03-02 23:42:02 382

原创 offer求比较+部分大厂Android面经+真题解析,android热更新

10.浦发银行(这个和华为差不多)个人思考就行业大环境来说的话,感觉应届应该去大厂。感觉面试才是第一步,完了收到一堆offer还要进行选择。主要疑问有:大厂镀金真的非常重要吗?但部门是否也有影响?挺欣赏猿辅导work and life balance的理念,不知道实际情况是否真的是这样?刚出校门,职场方面关注的不多,很多都还不太了解,希望有大佬能够指点一下吧。面经分享下面是OPPO技术面的面经(总体感觉上好像并没有什么特别的难度吧)其他公司的面经另外有做整理,有兴趣的朋友可以自己去看【指

2022-03-02 23:40:38 637

原创 NDK开发(二),android平板上的编程软件

/*Class: cn_tsou_ndkfilecrypt_ndk_CryptorMethod: cryptSignature: (Ljava/lang/String;Ljava/lang/String;)V*/JNIEXPORT void JNICALL Java_cn_tsou_ndkfilecrypt_ndk_Cryptor_crypt(JNIEnv *, jclass, jstring, jstring);/*Class: cn_tsou_n

2022-03-02 23:39:13 621

原创 Message,MessageQueue,Looper,Handler的理解,音视频学习指南来咯

handler是方便多线程处理或异步处理而创建的数据结构,它拥有两个成员,一个指向handler被创建的线程的looper,一个是该线程的消息队列。所以,调用handler的post方法,实际上是把消息放到了该线程的消息队列(注意,不是当前线程,如果你在主线程中创建的handler,在子线程中调用handler的post方法,实际上是把消息发送到主线程的消息队列);每个消息有一个target成员,handler发送过去的消息会把该消息的target设置称为自己。looper收到消息后会处理,并且把消息

2022-03-02 23:37:47 105

原创 Groovy 本质初探及闭包特性原理总结,android星座查询源码

/**属性或者方法存在于 owner 内,那么他可以被 owner 调用所以 outerClosure 闭包的 owner 是其声明包裹的对象,即 test 实例故 str1 = 1*/println str1def nestedClosure = {/**属性或者方法不存在于自己的 owner 内,而自己的 owner 又是一个闭包实例对象,所以在自己 owner 的 owner 上继续寻找调用故 str1 = 1*/println str1/**

2022-03-01 14:09:47 121

原创 Flutter完整开发实战详解(十七、 实用技巧与填坑二),移动端页面开发流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhZqJ68V-1646114802066)(https://user-gold-cdn.xitu.io/2019/11/18/16e7da8ac3f9ea8b?imageView2/0/w/1280/h/960/ignore-error/1)]如上图所示,因为当 TextField 的 controller 不为空时,update 时是不会执行 value 的拷贝,所以为了避免这类问题,如下图所示, 需要先在全局构建 Tex

2022-03-01 14:06:56 541

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除