自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 自定义View主题切换动画(仿酷安客户端)

​private RippleAnimation(Context context, float startX, float startY, int radius) {super(context);//获取activity的根视图,用来添加本ViewmRootView = (ViewGroup) ((Activity) getContext()).getWindow().getDecorView();mStartX = startX;mStartY = startY;mStartRadius =

2022-04-15 19:08:22 282

原创 编译时注解解析及访问者模式的使用

语义分析:主要任务是对结构正确的源程序进行上下文有关性质的审核。解语法糖:还原简单的基础语法结构生成字节码:将前面各个步骤所生成的信息(语法树、符号表)转化为字节码,输出到class文件中。Mir 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 ror API和Element代码元素APT是一个命令行工具,与之配套的还有一套用来描述程序语义结构的Mirror API,Mirror API(com.sun.mirror.*) 描述的是程序在编译时的静态结构,通

2022-04-15 19:06:04 1256

原创 线程共享和协作(一)

核心数:是逻辑上的,简单理解为逻辑上模拟出的核心数;线程数:是同一时刻设备能并行执行的程序个数,线程数 = cpu个数 * 核数;CPU线程数和Java多线程概念:单个CPU线程在同一时刻只能执行单一Java程序,也就是一个线程单个线程同时只能 Android开源项目《ali1024.coding.net/public/P7/Android/git》 在单个CPU线程中执行线程是操作系统最小的调度单位,进程是资源(比如:内存) 《Android学习笔记总结+最新移动架构视频..

2022-04-15 19:04:28 2110

原创 纵享丝滑滑动切换的周月日历,水滴效果,丰富自定义日历样式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QF0ojEiz-1650020556182)(https://user-gold-cdn.xitu.io/2018/2/5/161654f4c86ad32d?imageslim)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6XQbd5Oq-1650020556183)(https://user-gold-cdn.xitu.io/2018/2/5/161654f4c89b7b23?images

2022-04-15 19:02:55 1663

原创 用RecyclerView打造一个轮播图

至于自动滑动图片,就用Handler不断延迟发送消息就好了:private Handler mHandler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(Message msg) {if (msg. Android开源项目《ali1024.coding.net/public/P7/Android/git》 what == WHAT_AUTO_PLAY) {mRecyclerView.smoo

2022-04-15 18:58:38 1990

原创 深入解析Android-Studio中Gradle依赖

// 可以一条依赖引入libs下所有的jarimplementation fileTree(dir: ‘libs’, include: [’*.jar’])// 也可以指定依赖某一个或几个jarimplementation files(‘libs/dict-v120.jar’, ‘libs/download-v151.jar’)依赖aar:// 在module的build.gradle中增加如下语句:repositories {flatDir {dirs ‘libs’}}// 可以一条

2022-04-15 18:50:37 1467

原创 深入分析ConstraintLayout的原理及应用场景

// 横向:app:layout_constraintStart_toStartOf=“parent”app:layout_constraintEnd_toEndOf=“parent”;// 竖向:app:layout_constraintTop_toTopOf=“parent”;app:layout_constraintBottom_toBottomOf=“parent”;利用权重实现均分(weight属性)均分时,长或宽都必须为0。代码如下所示。<?xml version="

2022-04-15 18:49:06 1580

原创 某度员工从事 Android 5年还是初级工程师,所以我们到底该不该研究底层?

有没有用过kotlin开发…[](()3面阿里钉钉:===================================================================@归园田居:阿里的面试基本上都是边聊边问,根据你的工作经历以及面试过程中的内容进行展开。面试官先问,你最擅长Android中的哪个方向呢?我答了插件化、组件化、热修复、React Native,最近也在钻研Flutter,对flutter有一些自己的理解。(我故意这么讲,希望面试官可以多问一下flutter。

2022-04-15 18:47:19 91

原创 来深入了解一波鸿蒙开发

我们通过对比和平精英app在鸿蒙和EMUI系统上的效果发现:玩游戏最在意的是流畅度,假设游戏设定的是1s中以60帧的方式渲染,但是真实情况是需要根据系统、硬件等一起来判定,由于运行中会发生卡顿,真实的渲染结果会比理想渲染帧数低一些,例如这1s中只渲染了55帧,则我们认为丢帧数达到了5帧。和平精英的测试结果:整体运行的流畅度比 EUMI 要好一些。再来看看运行王者荣耀时耗电量的对比:可以看到,鸿蒙耗电量要低于EMUI 11系统。那么,作为Android开发者的我们学习鸿蒙有何优势与前景呢?[]

2022-04-15 18:45:39 560

原创 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%

最后,APP 把这些DexFile对象都添加到PathClassLoader的pathList里面,就可以让 APP 在运行期间,通过ClassLoader加载使用到这些 DEX 中的类。在这整个过程中,生成 ZIP 和 ODEX 文件的过程都是比较耗时的,如果一个 APP 中有很多个 Secondary DEX 文件,就会加剧这一问题。尤其是生成 ODEX 的过程,Dalvik 虚拟机会把 DEX 格式的文件进行遍历扫描和优化重写处理,从而转换为 ODEX 文件,这就是其中最大的耗时瓶颈。普遍采用的优

2022-04-15 18:43:21 673

原创 浅谈Android动画之属性动画ValueAnimator和ObjectAnimator

1.设置布局文件在activity_main.xml修改<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”xmlns:app=“http://schemas.android.com/apk/res-auto”xmlns:tools=“http://sch

2022-04-14 22:49:12 648

原创 最新阿里等一线大厂面试,这些你会吗?

7.OkHttp网络访问框架设计8.Glide图片加载框架9.RXJava2架构分析和源码详解10.IOC框架设计和设计模式四.Flutter方面1.Dart语法详解与编译原理2.为什么Flutter是跨平台技术革命《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 3.Fliutter进阶与优化-如何进一步提升Flutter内存表现HR面试:1、上一家公司,你为什么会离职?2、你怎么看待自己以后的职涯?(包括工作和家庭的分配,怎么平衡家庭和工作

2022-04-14 22:47:41 114

原创 文字选中行 字体凸出变大变亮效果

之前想了很久,以为同listview选中行字体颜色一样,使用xml文件中使用selector就可以改变了,但是一直上网查找资料,都没有找到selector中改变字体大小的命令。后来网友提醒我,可以在adapter中的getview中修改。现将重要的代码放上:[?](()12//全局变量,记录选中的itempublic  static  int  select_item = - 1 ;先使用全局变量记录选中的item,然后在listview的OnItemSelectedLi

2022-04-14 22:45:54 176

原创 整日碎片化学习“凡不凡”

**2.薪资提升难:**初中级Android岗位薪资上升空间有限,基本上你想拿15k以上,不会点源码层的东西是根本拿不到的**3.学习资源少:**入门之后想要提升很难,靠自己接触的简单业务项目,去反复操练那些cv技术。博客和书本上的技术大多比较抽象并且零散,可以借鉴和指导,但是没办法复制成自己的这个时候构建一个 Android开源项目:ali1024.coding.net/public/P7/Android/git 属于自己的知识体系,能够让我们学到的知识体系化。让自己清楚哪块是自己的知识盲区,哪块

2022-04-14 22:44:13 158

原创 想做直播的你,这些热门的音视频如何绝对同步的。你get了嘛

last_duration = vp_duration(is, lastvp, vp);//计算上一帧的持续时长delay = compute_target_delay(last_duration, is);//参考audio clock计算上一帧真正的持续时长time= av_gettime_relative()/1000000.0;//取系统时刻if (time < is->frame_timer + delay) {//如果上一帧显示时长未满,重复显示上一帧*remaining_t

2022-04-14 22:41:56 365

原创 微信开放平台Android应用签名的本质及如何获取

输入密钥库口令:123456之后得到详细的keystore输出信息如下:这里大家明显看到我把MD5值给框起来了,跟它有关系吗?想知道答案继续往下看吧…2.创建一个简单的android项目项目的包名为:com.qj.keystoretest ,包名符合规范可以随便命名,因为后面会用到,故在此处标出(如何创建项目略)3.使用keystore文件签名该应用得到签名apk我们的android应用已经创建好了,现在如何使用我们的keystore文件签名我们的应用呢[外链图片转存失败,源站可能有防盗链

2022-04-14 22:40:10 649

原创 带你玩转自定义view系列

这些方法可以分成如下两个类别:View提供的获取坐标方法:**getTop(): **获取到的是View自身的顶边到其父布局顶边的距离**getLeft(): **获取到的是View自身的左边到其父布局左边的距离**getRight(): **获取到的是View自身的右边到其父布局左边的距离**getBottom(): **获取到的是View自身的底边到其父布局顶边的距离另外View获取自身宽高**getHeight(): **获取View自身

2022-04-14 22:35:46 176

原创 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?

Android KTX 其实就是一个 Kotlin 代码的扩展库,Google 把我们开发的时候,比较常用的一些代码块,进行封装,然后在这个基础上,提供更良好的 API,供开发者使用。举个例子:以前你需要些三五行代码才可以实现的功能,用上 Android KTX 之后,一行代码搞定了。意不意外,惊不惊喜!说明白 Android KTX 是什么之后,你是不是想说,这不就是 Java 下的 XxxUtils 库么?其实还真就是一样的,只是因为 Kotlin 的 Extensions 特性,让这个扩展库看着更

2022-04-14 22:33:30 832

原创 Android:年过35岁的程序员还有出路吗,【工作经验分享】

前言每个程序员都有一个梦想,那就是进一线互联网公司深造,不要跟我说你不想进去,如果给你一个这样的平台,不管是薪资待遇还是接触的高度来说,对我们程序员来说都是一个机会,我以前有一个同事,就是从阿里出来的,原来是p7,后面来了我们这里当了技术总监,人家的代码写的让你不得不服。今天我特意收集了最新面试题,虽然花了一些时间,经过整理之后分享给大家,大家一起来看看什么互联网面试题,一起来认识一下,看看自己能掌握多少!我能想象他年少轻狂,意气风发的状态,只是现在有些境遇大有不同,这是一个变化的世界。表达能力的缺

2022-04-12 16:36:18 196

原创 Android高工:细说 Android 多线程,211本硕如何通过字节跳动、百度、美团Android面试

我们都是被圈养的人?我的朋友程序员K,说他在电力行业的一家软件公司做了八年Android开发,用到的各种技术,数据库,网络请求,事件传递,响应框架都很熟悉,甚至JNI/NDK/Framework,JS、Server端开发都能玩儿转,个人也是部门骨干。因为疫情,今年公司项目锐减,已经签的项目,也迟迟不能开始,公司难以运转,就做了一些优化。K原本不在被优化之列,但他觉得留下来也意义不大,就主动申请了一个名额,拿了几个月赔偿金,出来找工作。K对找工作本来信心满满,谁知道一面试,连“熟悉SSM吗?用它们做过项

2022-04-12 16:34:42 202

原创 Android面试题之ContentProvider篇,安卓工程师面试题及答案

前言最近经常被朋友问到的两个问题。问题一: “从事IT工作3年了,做技术好累啊,是不是做到30岁就不能继续往下做啊?”问题二: “我已经30岁了,还能不能学编程?”我给出的答案是:只要你兴趣还在,可以一直做,什么时候都不会晚;种一棵树最好的时间是十年前,其次是现在。本人目前在 IT 行业工作了 6 年,做过大大小小的项目,虽然跟网上那些大牛比还差很远。但也确实经历过同样困惑,也迷茫过,踩过很多坑,今后也会继续踩。所以关于这一类问题,也有心得体验,在此算是做个人分享吧。ContentProvi

2022-04-12 16:33:05 479

原创 android自定义控件—,真香系列

开头在我认为,对于Android面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这里暂时不提后面再谈。我总结了一系列大厂面试中常问的面试技术点,深入解析以及答案,将为最近准备面试的各开发者去大厂保驾护航,何谓面试? 博主所理解的面试,它是一个过程,是不断沉淀、不断总结、善于传达自己的专业领域技术以及解决问题能力的过程。以下是博主总结

2022-04-12 16:31:28 309

原创 Android自定义控件(高手级)--JOJO同款能力分析图,这份字节跳动历年校招Android面试真题解析

在面试程序员岗位时,我们往往需要经历一个编程面试过程,雇主会借此考验面试者的技术实力。然而,这些技术问题有时候却和我们的实际工作并无太大关系,也由此可能给我们的编程面试准备阶段带来很大的压力。我也因此写出这篇文章,相信能给即将进入职场的程序员带来帮助。//定义测试数据mAbilityInfo = new String[]{“破坏力”, “速度”, “射程距离”, “持久力”, “精密度”, “成长性”};mAbilityMark = new int[]{100, 100, 60, 100, 100.

2022-04-12 16:29:52 441

原创 Android自定义动态布局 — 多图片上传,推荐

缘起随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有65535,应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。阿里P8大佬每天熬夜到凌晨一两点,花了将近半个月时间将Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应

2022-04-12 16:28:15 548

原创 Android笔记:在Flutter中嵌入原生View,12个View绘制流程高频面试题

第一次观看我文章的朋友,可以关注、点赞、转发一下,每天分享各种干货技术和程序猿趣事由于涉及到的面试题较多导致篇幅较长,我根据这些面试题所涉及到的常问范围总结了并做出了一份学习进阶路线图​​​​​​​及面试题答案免费分享给大家,文末有免费领取方式!首先是MainActivity的布局文件,上面一个FrameLayout用于承载Flutter。<?xml version="1.0" encoding="utf-8"?><android.support.constraint.Cons.

2022-04-12 16:26:39 470

原创 Android性能优化典范(一,震撼发布

背景惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口。那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很体贴,没有怎么要求我。本来生活就这样一帆风顺下去我就满足了,但是去年初,女朋友家里出了一些事情,一点积蓄全给她了,后面疫情来了,家里开始催婚了,我感觉到了压力。目前的工资无法满足生活,虽然这些年来有一点点的提升,但是,房价物价涨的更快,于是我决定跳槽。从去年年底开始瞎投简历,回顾了一下,一共投了33份简历

2022-04-12 16:23:25 207

原创 【android每日一问】怎么检测UI卡顿

…}}注意到两个很关键的地方是logging.println(">>>>> Dispatching to " + msg.target + " " + msg.callback + ": " + msg.what);和logging.println("<<<<< Finished to " + msg.target + " " + msg.callback);这两行代码,它调用的时机正好在dispatchMessage(msg)的前后,而主线

2022-04-11 17:15:06 189

原创 WSL2运行 Anbox,从青铜到王者的路线

前言职场的金三银四跳槽季又来了,不同的是今年比往年「冷」一些,形式更加严峻一些,大家多多少少可能都听到或看到一些信息,就是好多公司在优化裁员,作为求职者来说,面试是一道坎,很多人会恐惧面试,即使是工作很多年的老鸟,可能仍存在面试的焦虑。这些题目是我之前的面试以及在金三银四中去百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。由于涉及到的面试题较多导致篇幅较长,我根据这些面试题所涉及到的常问范围总结了并做出了

2022-04-11 17:07:03 648

原创 AndroidStudio gradle安装配置详解-透过现象看本质

下载位置可以和解压位置不一样。zipStoreBase和distributionBase有两种取值:GRADLE_USER_HOME和PROJECT。其中,GRADLE_USER_HOME表示用户目录。 在windows下是%USERPROFILE%/.gradle,例如C:\Users<user_name>.gradle\。 在linux下是$HOME/.gradle,例如~/.gradle。PROJECT表示工程的当前目录,即gradlew所在的目录。举例:各项属性的整体含义例1,

2022-04-10 23:54:35 4953

空空如也

空空如也

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

TA关注的人

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