自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MPAndroidChart绘制曲线图、柱状图总结,成功入职百度月薪35K

// 设置x轴数据的位置xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);// 设置x轴文字的大小xAxis.setTextSize(12);// 设置x轴数据偏移量xAxis.setYOffset(5);final List labels = mLabels;// 显示x轴标签IAxisValueFormatter formatter = new IAxisValueFormatter() {@Overridepublic String get

2022-03-20 18:31:20 610

原创 Looper,2021一位Android中级程序员的跳槽面经

会不会请求代码没执行,妹子自己搞错了吧?发请求前,出现异常,代码被中断运行?请求过程伴随着页面跳转,导致页面销毁时,请求被自动关闭?请求过程出现异常,被RxJava全局异常捕获了,并吃掉了,所以收不到失败回调?这里解释下,妹子采用RxHttp+RxJava结合的方式发请求经过第一轮询问后,以上猜想轻而易举的被推翻了,我也大概知道了案件的细节,为此,我用代码来还原一下,为简化案件,还原时,我会适当的做出修改,但意思还是那个意思。2、案件还原妹子在首页MainActivity的OnCreate方

2022-03-20 18:29:43 291

原创 Android - 判断当前网络环境、隐藏软键盘、动态监测及获取权限

return 2;} else {return 3;}}二、隐藏软键盘/**隐藏软键盘@param activity 当前界面@param editText 当前输入框@return true未隐藏 false隐藏*/public static boolean hideSoftInput(Activity activity, EditText editText) {InputMethodManager imm = (InputMethodManager) ac

2022-03-20 13:00:13 273

原创 Android Toast用法详解(各种自定义Toast),android性能优化和内存优化

package hb.android.hellotoast;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import and

2022-03-20 12:58:36 1003

原创 Activity 过渡动画 — 让切换更加炫酷,从理论到实践

例如,我要从 MainActivity 中启动 AnimationActivity,只需要在 MainActivity 中 startActivity(); 传入参数即可,代码如下:startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());第二步:在 AnimationActivity 中的 setContentView(); 方法前加入一行代码://在需要启动的 activit

2022-03-20 12:57:00 955

原创 606页Android最新面试题含答案,助力成为offer收割机,2021大厂Android知识点总结

下面是我花了将近一个月的时间整理的一份面试题库。这些面试题,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,我都统一的整理了一下,希望对大家有用。作者不易,如有错误望见谅。一、Android基础+进阶1.Activity启动模式2.Activity的启动过程3.进程通讯4.Android Binder之应用层总结与分析5.进程保活方法**6.从源码了解handler looper ,messageQueue思路**7.handler如何实现延时发消息postdelay()8.A

2022-03-20 12:53:46 3234

原创 30岁程序媛在一家公司工作八年后,告别“体制化,android数据结构算法面试题

面试经过面试了几家,最后基本都过了。有问得比较专业的,涉及到高级UI原理、Framework、JVM等问题的;也有业余到拿着打印的面试题来面试的。当然,大家耳熟能详的大厂是没有的,都是我们本地的土作坊。待遇嘛,基本都是番翻,因为我本身是有心理预期的,谈薪的过程都是一点不让的。下面是面试中的一些考察技术点:Android知识点基础:四大组件、fragment、自定义View、事件分发、滑动处理、handler、AsyncTask、IntentService、ThreadHandler、Bitma

2022-03-20 12:52:09 104

原创 22个值得收藏的android开源代码-UI篇,kotlin方法作为参数

=============================================================================一个实现了ListView多选操作的ListAdapter,他的功能类似于ListView的CHOICE_MODE_MULTIPLE_MODAL 模式,但是还有如下特点:他可以保持选择的数目 ,并且选中的状态下有一个透明的背景色;它支持2.x版本;它可以用到gridview中实现gridview的多选效果。http://jcodecraeer.com/

2022-03-19 19:48:26 2985

原创 21年的程序员们,超过四十岁的都去干什么了,能干到四十吗,循序渐进

读万卷书,听百家言,或许能在这乱像下捕获一丝生机,本文收录了三位大佬的见解和看法,供君一览。@ZOMI真实戳中我的心扉!别问!千万别问!背景:41岁头发花白,只在公司里面当个小组长(下面只有2个毕业生),还得每天亲自打代码。很害怕丢了工作,没什么技能谋生只能回家带小孩,带小孩啊。。。先正面回答你这个问题,在我公司,有100来号程序员,只有4个40岁左右:一个女的已经退居二线当领导的助手每天整理一下SVN和公司需求文档和代码需求;一个男的比我还挫,组长都当不上;一个是老板的亲属,能力是有,没什么管理

2022-03-19 19:45:13 4077

原创 2021跳槽必备——Android从初阶到架构师面试复习大纲,安卓驱动面试

10、Activity启动过程在安装应用的时候,系统会启动PackaManagerService管理服务,这个管理服务会对AndroidManifest进行解析,从而得到应用程序中的相关信息,比如service,activity,Broadcast等等,然后获得相关组件的信息当用户点击应用图标时,就会调用startActivitySately(),而这个方法内部则是调用startActivty(),startActivity()最终还是会调用startActivityForResult()。由于

2022-03-19 19:43:36 2333

原创 2021 Android开发项目开发必备底层技术知识点整理,谷歌flutter应用

说明:writeObject与readObject方法分别在ObjectOutput接口与ObjectInput接口中声明,在ObjectOutputStream与ObjectInputStream中实现。后续章节内容过多如下图:Java泛型剖析篇1. java泛型是什么?泛型的好处是啥?2. 泛型类3. 泛型方法4. 泛型接口5. 通配符1. java泛型是什么?泛型的好处是啥?那些拥有Java1.4或更早版本的开发背景的人都知道。在集合中存储对象并在使用前进行类型转换是多么的.

2022-03-19 19:38:45 1878

原创 2020都快过完了,这一年的Android 面经该出来了,androidauto地图

4.AIDL in out oneWay代表什么意思?5.线程池了解多少?拒绝策略有几种,为什么有newSingleThread6.跨进程通信了解多少?管道了解吗?7.协程介绍一下,讲一个协程的scope与context,协程的+号代表什么8.Handler休眠是怎样的?epoll的原理是什么?如何实现延时消息,如果移除一个延时消息会解除休眠吗?9.算法斐波那契台阶10.手写生产者消息者模型11.IdleHandler应用场景字节跳动2面1.自定义圆角图片2.自定义LinearLayou

2022-03-19 19:37:22 171

原创 Android UI 设计规范,Android高分面试指南

| 45% | 73 || 40% | 66 || 35% | 59 || 30% | 4D || 25% | 40 || 20% | 33 || 15% | 26 || 10% | 1A || 5% | 0D || 0% | 00 |1.4 标注Android 设计规范中间距单位是 dp,dp 在 Android 机上不同的密度转换后的 px 是不一样的,所以按照设计图的 px 转换成 dp 也是不一样的。现在,多数标注工具都支持 dp 标注功能,比如 MarkMan,如果U

2022-03-17 20:53:15 216

原创 Android Studio 3,顺利拿到offer

下面是 Android Studio 3.1 中的新功能列表,这些新功能按照主要开发流编排。Android Studio 3.1 中的新功能开发Kotlin Lint 检查 - 自从去年宣布在 Android 平台上正式支持 Kotlin 语言以来,我们继续投入人力物力,努力在 Android Studio 中支持 Kotlin 语言。在 Android Studio 3.1 中,我们增强了 Lint 代码质量检查,因此,您现在可以通过命令行和 IDE 运行检查。只需打开 Android Stud

2022-03-16 22:00:17 4938

原创 Android实战——简单网络视频播放器,flutter下拉加载

2.编写布局文件主界面使用LinearLayout布局,只有一个简答的ListView,用来展示视频内容。再写ListView中每个item的布局,每个item中是组件包括视频、发布者、详情、点赞数、评论数,用了比较简单的线性布局和约束布局,此部分代码不单独贴出。特别说明:该项目使用的是github上的JZVideo提供的自定义视频框架,具体可查看链接github链接此处我们直接使用,在item布局中添加<cn.jzvd.JzvdStdandroid:id="@+id/item_main

2022-03-05 18:04:20 274

原创 android中RecyclerView的简单使用(四),kotlin协程池

public int getItemCount() {// TODO Auto-generated method stubreturn list.size() + 1;}@Overridepublic void onBindViewHolder(ViewHolder holder, final int pos) {// TODO Auto-generated method stubif (holder instanceof ItemHolder) {((ItemHolder) holder)

2022-03-05 17:54:24 1509

原创 Android一次完美的跨进程服务共享实践,androidframework开发书籍

file.parentFile.mkdirs()file.createNewFile()val outputPath: String = file.absolutePathmMediaRecorder?.setOutputFile(outputPath)mMediaRecorder?.prepare()mMediaRecorder?.start()mState = RecorderState.RECORDING“”} catch (e: Exception) {mMediaRecorder

2022-03-05 17:52:58 109

原创 Android-ContentProvider实例详解,写给1-3年安卓程序员的几点建议

但注意ContentProvider它也只是一个中间人,真正操作的数据源可能是数据库,也可以是文件、xml或网络等其他存储方式。##2URLURL(统一资源标识符)代表要操作的数据,可以用来标识每个ContentProvider,这样你就可以通过指定的URI找到想要的ContentProvider,从中获取或修改数据。在Android中URI的格式如下图所示:A:schema,已经由Android所规定为:content://.B:主机名(Authority),是URI的授权部分,是唯一

2022-03-04 17:09:11 334

原创 Android--关闭某个指定activity,android开发游戏

if (sManager == null) {sManager = new FinishActivityManager();}}}return sManager;}/**添加Activity到集合中/public void addActivity(Activity activity) {if (activityList == null) {activityList = new LinkedList<>();}activityList.add(activity);}

2022-03-04 17:06:21 3978

原创 Android&Java面试题大全—金九银十面试必备【上,总结2021年180道Android岗面试题

Java 中类加载分为 3 个步骤:加载、链接、初始化。1.加载。加载是将字节码数据从不同的数据源读取到JVM内存,并映射为 JVM 认可的数据结构,也就是 Class 对象的过程。数据源可以是 Jar 文件、Class 文件等等。如果数据的格式并不是 ClassFile 的结构,则会报 ClassFormatError。2.链接。链接是类加载的核心部分,这一步分为 3 个步骤:验证、准备、解析。验证。 验证是保证JVM安全的重要步骤。JVM需要校验字节信息是否符合规范,避免恶意信息和不规范数据危

2022-03-04 17:04:56 274

原创 Android&Java面试题大全—金九银十面试必备【上(1),讲的太清楚了

Java 中类加载分为 3 个步骤:加载、链接、初始化。1.加载。加载是将字节码数据从不同的数据源读取到JVM内存,并映射为 JVM 认可的数据结构,也就是 Class 对象的过程。数据源可以是 Jar 文件、Class 文件等等。如果数据的格式并不是 ClassFile 的结构,则会报 ClassFormatError。2.链接。链接是类加载的核心部分,这一步分为 3 个步骤:验证、准备、解析。验证。 验证是保证JVM安全的重要步骤。JVM需要校验字节信息是否符合规范,避免恶意信息和不规范数据危

2022-03-04 17:03:31 101

原创 Android 高级UI,kotlin源码

标签使用它的优点是需要时才会加载,它并不会影响UI初始化时的性能。各种不常用的布局都可以使用标签,以减少内存使用量,加快渲染速度。[html]  view plain copy<ViewStubandroid:id="@+id/stub_import"android:inflatedId="@+id/panel_import"android:layout="@layout/progress_overlay"android:layout_width=“fill_

2022-03-04 17:02:06 231

原创 Android 适配 - FileProvider,最新阿里P7技术体系

android:authorities="${applicationId}.fileProvider"唯一字符串即可,上面为一般常用的写法。可修改项 3android:name=“android.support.FILE_PROVIDER_PATHS”是可以修改,但是如果没有自己实现 Provider ,这个值只能是这个。这个字符串是在类 FileProvider 里面定义的。可修改项 4android:resource="@xml/file_paths"定义了类 FileProvider 使

2022-03-04 16:59:16 256

原创 Android 轻量级存储方案的前世今生,移动端网页开发教程

String rootDir = MMKV.initialize(this);System.out.println("mmkv root: " + rootDir);//……}如果不同的业务需要区别存储,也可以单独创建自己的实例MMKV kv = MMKV.mmkvWithID(“MyID”);kv.encode(“bool”, true);如果业务需要多进程访问,那么在初始化的时候加上标志位 MMKV.MULTI_PROCESS_MODE:MMKV kv = MMKV.mmkvWithID

2022-03-04 16:57:51 146

原创 android 计算所在周所在月的前后日期,flutter与android混合开发

/** 日期格式:HH:mm **/public static final String DF_HH_MM = “HH:mm”;private final static long minute = 60 * 1000;// 1分钟private final static long hour = 60 * minute;// 1小时private final static long day = 24 * hour;// 1天private final static long month = 31 *

2022-03-04 16:56:26 423

原创 Android开发:从创业小公司跳槽进阿里,需要做到什么,android面试算法题

专业能力的提升=====================================================================计算机专业要学习的内容非常多,专业能力包含很多,光Android还不够,还有比如数据结构、算法、Linux、网络编程、计算机原理等等等等等等,由于我做的是 Android,那么这里就偏向 Android 来讲解了。深入理解原理,不要只会使用========================================================

2022-03-02 20:57:01 75

原创 Android开发音视频方向学习路线及资源分享,学完还怕什么互联网寒冬?

四、用 AudioTrack 播放PCM音频1.AudioTrack 基本使用MODE_STATIC模式MODE_STREAM模式2.AudioTrack 详解音频流的类型Buffer分配和Frame的概念AudioTrack构造过程AudioTrack 与 MediaPlayer 的对比区别联系SoundPool五、使用 Camera API 采集视频数据1.预览 Camera 数据2.取到 NV21 的数据回调六、使用

2022-03-02 20:55:36 425

原创 Android开发面试常见的 Handler 相关面试题,你能答上几题?

1. Handler机制和底层实现?2.Handler、Thread和HandlerThread的差别1) Handler线程的消息通讯的桥梁,主要用来发送消息及处理消息。2) Thread普通线程,如果需要有自己的消息队列,需要调用Looper.prepare()创建Looper实例,调用loop()去循环消息。3) HandlerThread是一个带有Looper的线程,在HandleThread的run()方法中调用了Looper.prepare()创建了Looper实例,并调用Looper.

2022-03-02 20:54:11 118

原创 Android开发简记:140M到67M,学而思网校如何在一周内构建一套可持续的瘦身系统

以前资源在APP内,附件框架的资源在下载后,框架代码需要做到全方面的资源访问替换技术,以避免大量的业务代码变动,做到业务层面无感知。考虑到存量用户基数大,各个业务版本迭代资源变动小,为了进一步避免或减少loading出现的概率时间,附件框架可以做增量更新技术。保证存量用户更新资源时,资源包体积减少95%。20多个离线zip增量迭代10个版本,会产生上百个资源文件,对应的人力维护成本也大。需要配套的自动化附件包发布脚本,一是减轻负重,二是避免人为性失误。框架需要考虑失败重试机制 需要做到..

2022-03-02 20:52:46 145

原创 Android开发的未来发展方向,2021高级Android笔试总结

从2010年开始Android市场开始需要大量的Android开发人员,招聘市场上也开始大量招Android开发人员,大量java开发者开始学习Android开发,招聘市场面试要求上只要有一定java语法基础,都很容易应聘上Android开发的岗位,因为那时候国内Android开发的需求刚刚起步,从事Android开发的人员很少,到2011-2012年,只要有一年左右的Android开发经验,那时候在一线城市很容易拿到10K的起步薪资,那时候市场Android开发的市场空缺大概有30万左右,这时候大量软件培

2022-03-02 20:51:21 147

原创 Android开发5年,技术增长乏力,成为优秀开发者你还差点什么

设计模式我为什么把设计模式放在最前面?因为Android系统框架层里,要用到大量的设计模式,如果你设计模式没学好,你很难真正理解Android。设计模式大概有28种,要全部掌握,很难而且没必要,你可以深入理解常用的设计模式:Builder模式:比如AlertDialog.Builder;适配器模式:比如GridView、ListView与Adapter;命令模式:比如Handler.post;享元模式:比如Message.obtain;单例模式:比如InputMethodM

2022-03-02 20:49:56 59

原创 Android开发3年,靠着这份PDF面试资料,成功跳槽字节跳动

说下 Activity跟window,view之间的关系?横竖屏切换的Activity生命周期变化?如何启动其他应用的Activity?Activity的启动过程?(重点)Fragment基础相关谈一谈Fragment的生命周期 ?与Activity生命周期的不同 ?谈谈Activity和Fragment的区别?Fragment中add与replace的区别(Fragment重叠) getFragmentManager、getSupportFragmentManager 、getChildF

2022-03-02 20:48:31 444

原创 安卓——线性布局,学生会面试题选择题

Layout File Name:文件名后面不用写".xml"。Root Tag :默认是线性布局,可以改成其他布局。接下来编写XML文件====================================================================orientation属性线性布局里的orientation是一个很重要的属性,表示控件的排列方向。该属性存在两个值,vertical(垂直)和horizontal(水平)。例子1:<?xml versio..

2022-03-02 00:05:31 179

原创 学习日记 11 高新(3)反射和静态导入,太厉害了

三种得到类对象的途径:1.Class.forName(“name”) //输入全类名2.object.getClass() //得到该对象的类对象3.object.classClass中的各种方法isPrimitive()判断是否为基本数据类型boolean、byte、char、short、int、long、float 和double。还有VOID一共9个AccessibleObject 类是 Field、Method 和 Constructor 对象的基类。它提供了将反射的对象标记为在

2022-03-02 00:02:41 64

原创 字节跳动面试:怎么加载巨图不撑爆内存?,android移动开发

到这里运行就能绘制出一部分图片了,想要看全部的图片,需要手指拖动来看,这就需要处理各种事件了。第五步,分发事件@Overridepublic boolean onTouchEvent(MotionEvent event) {mGestureDetector.onTouchEvent(event);mScaleGestureDetector.onTouchEvent(event);return true;}onTouchEvent中很简单,事件都交给两个手势检测器自己去处理。第六步,处理Ge

2022-03-02 00:01:16 80

原创 如何解决代码中if…else 过多的问题,kotlin常量

适用场景适合条件分支很多多,对程序扩展性和易用性均有较高要求的场景。通常是某个系统中经常遇到新需求的核心功能。实现与示例很多框架中都能看到这种模式的使用,比如常见的 Spring MVC。因为这些框架很常用,demo 随处可见,所以这里不再上具体的演示代码了。这个模式的重点在于实现。现有的框架都是用于实现某一特定领域的功能,例如 MVC。故业务系统如采用此模式需自行实现相关核心功能。主要会涉及反射、职责链等技术。具体的实现这里就不做演示了。方法四:事件驱动介绍通过关联不同的事件类型和对应的处理

2022-03-01 23:55:35 382

原创 一文搞懂Android-JetPack组件原理之Lifecycle、LiveData、ViewModel与源码分析技巧

LifecycRegistrypublic class LifecycleRegistry extends Lifecycle {/**Custom list that keeps observers and can handle removals / additions during traversal.Invariant: at any moment of time for observer1 & observer2:if addition_order(observer1) &lt

2022-02-18 00:06:23 231

原创 一周内被程序员疯转3,移动开发工程师核心竞争力

3.进程通讯4.Android Binder之应用层总结与分析5.进程保活方法6.从源码了解handler looper ,messageQueue思路7.handler如何实现延时发消息postdelay()8.Android中为什么主线程不会因为Looper.loop()里的死循环卡死?9.RxJava原理及如何封装使用10.okhttp源码分析11.retrofit源码分析…由于篇幅有限,只能分享部分面试题,更多面试题及答案可以我的【Github】阅读下载哦~无偿分享给大家,算

2022-02-18 00:03:33 192

原创 一位Android开发八年工程师他的技术分享之路,在一家公司干多长时间跳槽才合适

一路磕磕碰碰学习过来,如今已Android开发八年多了,现在作为一名常年在各种技术群里吹水却又无比热心肠的老司机,看到有人提问时,总是会蹦出来帮忙解决问题,因此,群里的很多小伙伴经常会找我询问应该怎么样学习一门技术,和大家也都非常亲切了。只要需要帮助的地方就会有我的身影,所以,为了帮助部分同学解决一些学习上的困惑,我都会尽我之能去帮忙解答还会分享一些我的学习经验给他们作为参考,甚至还会把我一路学习以来收集整理的学习资料面试资料分享给他们更好地帮助他们解决问题。有需要这些资料的小伙伴们可以查看文末我的联系方

2022-02-18 00:00:42 104

原创 【自学Flutter】21,最新Android通用流行框架大全

Image.network(“https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=1333189478,4259049031&fm=173&app=25&f=JPEG?w=640&h=640&s=6BA43A6238B07BA77D3C7CC60000E0E1”,width: 100,height: 180,),Image.network(“https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it

2022-02-17 23:56:28 125

空空如也

空空如也

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

TA关注的人

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