自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 程序员怎么样可以快速成为高薪架构师?

架构师是一个光芒四射又充满挑战的职业,是许多程序员梦寐以求的职业梦想。Java架构师不仅拥有令人羡慕技术能力,还有让人望尘莫及的薪酬待遇,在普通Java程序员眼里,Java架构师如神一般的存在,其实每个架构师都是从普通程序员一步一步成长起来的,只要肯下功夫,每个程序员都有机会成为架构师。 程序员晋升架构师,一般分为这四个阶段初级Java程序员的重心在编写代码、运用框架中级Java程序员重心在编写代码和框架高级Java程序员技术攻关、性能调优-架构师 解决业务和技术问题如果自己本身的努力,各方面

2022-05-19 17:52:17 553

原创 2021年国内一线互联网大厂内部题库Android面试(Java篇)

9.进程和线程的区别(猎豹)简而言之,一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多

2022-05-01 11:24:00 359

原创 2020荒诞的一年,35岁程序员现状:我现在房贷车贷家庭

为什么造成这一现状?如何解决!第一、老员工工资比较高why?其实在职场中,工作并不是领导不愿意提拔老员工,而是因为老员工的工资确实高得离谱,这是公司领导难以承受的,所以在提拔员工时,有些领导他们甚至会注重那些新员工,并不愿意去看重老员工的能力,毕竟老员工的收入就占了公司用工成本的很大一部分,有些公司老板会隔三差五的劝退老员工,让老员工在职场中没有办法有更稳定的工作状态。solve很多人陷入了一个误区,价值和价钱这个是2个概念,你要努 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题

2022-05-01 11:22:13 325

原创 2020年Android高级面试题总结(附答案解析)

答:方法名+参数类型+参数顺序(返回值不是)2.finalize的工作原理答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。此外系统进行垃圾回收时并不保证一定会调用它,所以可以说它和对象被回收没有必然关系。3.一个对象的创建过程答:例如有一个Dog类:1.即使没有static,构造器其实也是静态方法,所以当首次创建Dog时或者D

2022-04-30 12:04:00 649

原创 android 获取通讯录并显示listview

import android.provider.ContactsContract;import android.provider.ContactsContract.CommonDataKinds.Phone;import android.text.TextUtils;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import

2022-04-29 13:37:07 364

原创 Android 网络性能优化(2)DNS优化

客户端输入一个网址即域名,到本地DNS服务器本地服务器DNS查找域名缓存,如果命中对应的ip地址,则返回该ip,如果没有命中,则发请求给根域名服务器请求解析根域名解析好后,返回 顶级域名服务器的地址本地DNS 向顶级域名服务器发送请求。顶级域名查看缓存,有没有对应ip,如果有直接返回,如果没有,则解析该域名,查找到目标 权威域名服务器的地址本地DNS 向 权威域名服务器发送请求权威域名服务器在数据库中查表,返回对应的ip地址本地DNS服务器 把 ip地址 返回给..

2022-04-29 13:34:38 3215

原创 Android 来去电监听,电话挂断

android:enabled=“true”android:process=“:PhoneListenService”>public class PhoneStateReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CAL

2022-04-29 13:32:43 3016 1

原创 Android 广播机制 详解

从现实生活中理解广播机制一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的。收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同。接受广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理。好比我们收听交通电台的广播,电台中告诉我们现在在交通状况如何,但它并不关心我们接收到广播时做如何做出处理,这不是广播应该关心的问题,OK,到这里我们从生活中的一些小例子浅浅的理解了一下广播,那么Android 中的广播是如何操作的呢?Andr

2022-04-29 13:29:34 468

原创 Android “退一步”的布局加载优化

注意里面有个merger.xml,其中就包含了整个项目所有资源合并后的内容。我们打开看一眼:重点关注里面的type=layout的相关标签。<file name=“activity_main1”path=“/Users/zhanghongyang/work/TestViewOpt/app/src/main/res/layout/activity_main1.xml”qualifiers=“” type=“layout” />可以看到包含了我们layout文件的路劲,那么我们只要解析这

2022-04-29 13:27:56 458

原创 Android —— 自定义View中

View通过measure来确定大小 measure的作用就是决定View到底有多大。在整个View树种是由View和ViewGroup组成。而measure也分为着两种绘制方式。View的measure只测试自身大小。ViewGroup除了测量自身大小,还负责测量子View的大小。[](()MeasureSpec的作用MeasureSpec封装了View的规格尺寸参数,包括View的宽高以及测量模式。它的高2位代表测量模式(通过mode & MODE_MASK计算),低30位代表尺寸。其中测

2022-04-29 13:25:38 128

原创 Android Wear开发步骤

创建Android Wear 项目,运行下载Android Wear SDK下载穿戴设备SDK需要使用SDK Manager来进行下载,打开Android Studio后,点击工具栏上的 图标,打开SDK Manager。勾选需要下载的包,点击下载即可。SDK更新建议使用这种[方法更新](()或者直接百度 “SDK更新”,下载速度很快。注意:如果后期SDK推出更高版本,建议下载最高版的前一个版本。既保证了使用新技术又可以避免最新版本带来的问题创建设备模拟.

2022-04-29 13:24:02 2411

原创 Android Studio编译错误:Error while generating the main dex list

这个是开了multidex的,如果你没开multidex, 可能不是这个错误,但是也是一个dex error的错误,出现这个错误的根本原因一般是项目中出现了重复的java类导致冲突。所谓的“项目中出现了重复的java类”一般包括下面几种情况:libs下的jar包或者aar包跟build.gradle中添加的远程依赖包重复,例如:libs下面放了一个gson.jar, 而build.gradle中又添加了implementation "com.google.code.gson:gson:2.8.2",

2022-04-29 13:22:27 178

原创 Android Studio—PullToRefresh 框架

之后到layout中改变刷新布局[](()3 使用==============================================================插入PullToRefreshListView<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”xmlns:tools=“http://schemas.android.co...

2022-04-29 13:20:39 251

原创 Android 程序员的技术栈大全

操作系统Unix / LinuxWindows[数据结构与算法](()[Java](()[Java 基础](()[面向对象思想](()[类和接口](()[注解与反射](()[泛型](()[多线程](()[多线程通信](()[volatile / synchronized](()[await / notify / notifyAll](()[线程池](()[线程池入门 Callable 和 Future](()..

2022-04-28 11:59:18 3477

原创 Android 支持库迁移到AndroidX

android.useAndroidX=true,表示主工程使用AndroidX形式。android.enableJetifier=true,表示针对主工程中使用到的三方库,也会自动执行AndroidX的替换过程。同时,在自动执行三方库的替换时,出下了如下报错信息:ERROR: Unable to resolve dependency for ‘:MyCorn@prodDebug/compileClasspath’: Failed to transform file ‘fingerprint-1.1.

2022-04-28 11:57:37 695

原创 Android 实现水印背景效果

/**同步设置水印字体大小(单位:px)@param textSize 字体大小(默认:42px)*/void setSyncTextSize(int textSize) {if (mSync) {setTextSize(30);}}/**设置水印字体是否粗体@param textBold 是否粗体(默认:false)*/publi 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】

2022-04-28 11:55:55 574

原创 Android 基础与底层机制面试题

[](()2. 是否使用过本地广播,它和全局广播有什么差别?引入本地广播的机制是为了解决安全性的问题:1) 正在发送的广播不会脱离应用程序,比用担心 app 的数据泄露;2) 其他的程序无法发送到我的应用程序内部,不担心安全漏洞。(比如:如何做一个杀 不死的服务—监听火的 app 比如微信、友盟、极光的广播,来启动自己。)3) 发送本地广播比发送全局的广播高效。(全局广播要维护的广播集合表 效率更低。 全局广播,意味着可以跨进程,就需要底层的支持。)本地广播不能用静态注册。----静态注册:可以做

2022-04-28 11:54:06 177

原创 Android 关于CPU类型的so文件兼容问题(ABI)

可以看到,只生成了我们指定CPU架构的so文件,包的大小也减少了5.3MB。Android CPU架构在当前市场的占有率Android目前支持7种ABIs:mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7aarm64-v8a: 第8代、64位ARM处理器,目前主流版本。armeabi-v7a: 第7代及以上的 ARM 处理器,2011年15月以后的生产的大部分Android设备,现在以arm64-v8a为多。armeabi: 第.

2022-04-28 11:52:26 1071

原创 Android 中的“后台无效动画“行为分析

我们把这份 Trace 上的 cpu 部分全选,然后下面按照 Wall Duration 排序,可以发现网易新闻后台动画执行时间最长。应用已经在后台且不可见的时候,还在这么频繁地工作,占用 CPU 资源,消耗电量,实在是不应该。抓对应的 MethodTrace 来看,就是在做动画,没有进行关闭 ,动画依旧在每一帧进行 onAnimationUpdate 的回调 ,可以看到这里是因为使用了 Airbnb 的 [Lottie](() 库导致的,动画没有关闭,所以还是一直在做触发[](

2022-04-28 11:48:14 236

原创 Android —— 自定义View中

UNSPECIFIED:未指定模式不对子View的尺寸进行限制。AT_MOST:最大模式对应于wrap_content属性,父容器已经确定子View的大小,并且子View不能大于这个值。EXACTLY:精确模式对应于match_parent属性和具体的数值,子View可以达到父容器指定大小的值。对于每一个View,都会有一个MeasureSpec属性来保存View的尺寸规格信息。在View测量的时候,通过makeMeasureSpec来保存宽高信息,通过getMode获取测量模式,通过..

2022-04-28 11:46:07 136

原创 Android WindowManager窗口类型

从WindowManagerService角度看,一个窗口并不是Window类,而是一个View类。WindowManagerService收到用户消息后,需要把消息派发到窗口,View类本身并不能直接接收WindowManagerService传递过来的消息,真正接收用户消息的必须是IWindow类,而实现IWindow类的是ViewRoot.W类,每一个W内部都包含了一个View变量。WmS并不介意该窗口(View)是属于哪个应用程序的,WmS会按一定的规则判断哪个窗口处于活动状态,然后把用户消息给.

2022-04-28 11:43:36 256

原创 Android Studio统一依赖管理Composing builds

glideVersion : “4.11.0”,okhttpVersion : “3.11.0”,retrofitVersion : “2.3.0”,constraintLayoutVersion: “1.1.3”,gsonVersion : “2.7”,rxjavaVersion : “2.2.2”,rxandroidVersion : “2.1.0”,…省略…]dependencie

2022-04-28 11:41:16 572

原创 Android Studio Debug 的 9 个小技巧

左边选择当前断点之后,在右边点击【Disable until breakpoint hit】,选择我们之前有条件判断的断点,那么这个新的断点会在它所跟随的断点生效之后才会生效。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0RP8JX0c-1651117135407)(https://user-gold-cdn.xit 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 u.io/2019/11/4/1

2022-04-28 11:39:14 492

原创 Android动态权限总结

return false;}return true;}申请权限当未获取权限时,需要向系统请求,请求时使用requestPermissions方法:// ActivityCompat.java// 在Activity中申请权限public static void requestPermissions(final @NonNull Activity activity,final @NonNull String[] permissions, final @IntRange(from = 0) i

2022-04-27 13:12:57 1482

原创 Android内存泄漏问题

让单例模式持有activity的ApplicationContext,application的生命周期就是应用的生命周期。这样就不会导致内存泄漏。注:我们平时在传入ActivityContext的地方会直接传入Activity.this,如果处理这个context的类处理不好也会造成内存泄漏,这时候可以使用弱引用,每次GC的时候都会将其回收。public class Sample {private WeakReference mWeakReference;public Sample(Context

2022-04-27 13:11:16 146

原创 Android从零开始搭建MVVM架构(1)

**《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】** 那么在Activity设置数据和设置点击事件(意思设置了variable标签后DataBinding会自动生成get和set方法。studio3.5后只要xml写上,IDE会自动生成,低版本可能需要Make Project下)。如下就实现了一个设置数据,和设置点击事件。通过以下代码可以看到,只要绑定下布局,通过Binding对象,可以做任何事。从此不再使用find...

2022-04-27 13:09:37 1281

原创 Android从初级到中级,记录一次Android面试

最近的项目有短视频和生活服务类的2.面试官:你说说这个短视频的应用是怎么样的这是一个外包性质的项目,它主要功能就是海外商家充值发布自家广告视频,普通用户浏览,然后购买商品的一个电商短视频的应用,因为开发周期短,所以我用了腾讯UGSV的服务,主要就是录制、特效、混音、发布这一块,然后我们自己实现用户系统和商品系统面试官:里面有没有用到什么比较亮的功能设计,或者你主要负责了哪块功能模块里面有一点算是比较难的,在发布视频时的标签分类,自己实现的动态联动的一个控件,我写了7天左右,iOS那边做了半个月。An

2022-04-27 13:07:57 115

原创 Androidstudio的约束布局

下面我们开始用边学边练的方式来进行学习,首先打开你的Android Studio,并新建一个ConstraintLayoutTest项目。另外,确保你的Android Studio是2.2或以上版本。为了要使用ConstraintLayout,我们需要在app/build.gradle文件中添加ConstraintLayout的依赖,如下所示。dependencies { compile 'com.android.support.constraint:constraint-layout:1.0.

2022-04-27 13:06:08 3988

原创 Android-高工面试真题:说说你对FPS的理解?如何检测应用的FPS

mTraversalScheduled 是个布尔值,防止重复调用,在一次 vsync 信号期间多次调用是没有意义的利用 Handler 的同步屏障机制,优先处理异步消息Choreographer 登场到这里,鼎鼎大名的 编舞者 —— Choreographer [ˌkɔːriˈɑːɡrəfər] 就该出场了(为了避免面试中出现不会读单词的尴尬,掌握一下发音还是必须的)。通过 mChoreographer 发送了一个任务 mTraversalRunnable ,最终会在某个时刻被执行。在看源码之前.

2022-04-27 13:04:28 572

原创 Android-茫茫9个月求职路,终于拿满意offer

项目经历Java基础设计模式算法网络相关知识Android基础Android源码Android性能优化开源库源码整个技术准备过程与面试过程是交替进行的,一边面试一边查缺补漏,如此往复。我当时是每天早上7点起床坐班车去公司,8点半吃完早餐就在工位上学习,一直学到9点半左右。然后10点开始办公,18时吃完晚餐,19时到20时,如果工作忙的话就办公,不忙的话就接着学习,后期公司任务变少了,有时候全天都在学习。在这个过程中我真的是学的越多越觉得自己真是菜啊,一是觉得不知道的东西太多了,即广度.

2022-04-27 13:02:42 112

原创 android-smart-image-view源码分析

public class BitmapImage implements SmartImage {//定义Bitmap对象private Bitmap bitmap;//构造方法public BitmapImage(Bitmap bitmap) {this.bitmap = bitmap;}//实现getBitmap方法public Bitmap getBitmap(Context context) {return bitmap;}}【WebImage(根据Url获取图片资源,需要注

2022-04-27 13:00:21 315

原创 Android 面试:事件分发8连问

}abstract class InputStage {private final InputStage mNext;public InputStage(InputStage next) {mNext = next;}public final void deliver(QueuedInputEvent q) {if ((q.mFlags & QueuedInputEvent.FLAG_FINISHED) != 0) {forward(q);} else if (shouldDrop

2022-04-27 12:55:37 359

原创 Android 相关源码分析

…}…RequestBuilder requestBuilder =new RequestBuilder(httpMethod,baseUrl,relativeUrl,headers,contentType,hasBody,isFormEncoded,isMultipart);…return requestBuilder.get().tag(Invocation.class, new Invocation(method, argumentList)).build();…if

2022-04-27 12:53:18 168

原创 Android应用-猜数字小游戏

txt_guess.setTextColor(ContextCompat.getColor(MainActivity.this,R.color.color_txt_pressed));transaction.replace(R.id.fragment_content,fm_guess,“GUESS”);break;case R.id.llay_order:if (fm_order == null){fm_order = new OrderFragment();}img_order.setIma

2022-04-26 22:38:03 740

原创 Android大三提前批的钉钉和抖音面筋,阿里挂了HR面,抖音通过收获Offer

我对钉钉这个产品的理解,我的回答是就的是钉钉前身的对标项目微信,已经后期转型的商业模式作出的分析,最后给出的我的结论是一个企业性质的办公软件给出了钉钉一个mac平台的关于共享屏幕的耗CPU的问题让我提问,提的是关于音视频发展方向的问题,具体是一个发展空间。阿里钉钉三面(面试时长60min,但是hr面挂了)自我介绍呗,还是一样,项目介绍,项目的优缺点对比对MVC和MVP的理解,还有Handler的内存泄漏问题具体是什么,解决方案知道有什么,空数据的时候Handler的阻塞问题..

2022-04-26 22:36:24 171

原创 android各种提示Dialog 弹出框

}ImageView spinner = (ImageView) v.findViewById(R.id.spinnerImageView);((AnimationDrawable) spinner.getBackground()).start();TextView messageTv = (TextView) v.findViewById(R.id.message);if (TextUtils.isEmpty(message)) {messageTv.setVisibility(View.GON

2022-04-26 22:34:42 1831

原创 Android冷启动优化解析

super.onCreate(savedInstanceState);setContentView(R.layout.activity_welcome);// 请求数据mvpPresenter.config();}@Overridepublic void finishRequest() {// 数据回调reportFullyDrawn();}}PS:这个方式minSdkVersion需要API19+,所以要对SDK版本进行设置或判断。####TraceviewTracevie

2022-04-26 22:32:54 155

原创 Android内存优化之图片优化

// 根据路径加载public static Bitmap decodeFile(String pathName, Options opts);// 加载drawable或mipmap中的图片public static Bitmap decodeResource(Resources res, int id, Options opts)// 根据字节流加载public static Bitmap decodeByteArray(byte[] data, int offset, int length)

2022-04-26 22:31:15 318

原创 Android-面试官:这些Java知识点我必问

3、说一下你对 ArrayMap 的了解ArrayMap 底层通过两个数组来建立映射关系,其中 int[] mHashes 按大小顺序保存 Key 对象 hashCode 值,Object[] mArray 按 mHashes 的顺序用相邻位置保存 Key 对象和 Value 对象。mArray 长度 是 mHashes 长度的 2 倍。存储数据是根据 key 的 hashcode() 方法得到 hash 值,计算出在 mArrays 的 index 值,然后利用二分查找找到对应的位置进行插入,当出现哈

2022-04-26 22:29:30 664

原创 Android-事件体系全面总结+实践分析

break;}}}}}//在编号7的if条件里面已经把事件下发到了子View,并得到了子View返回的结果//至此,默认情况下发事件的逻辑结束//下面消费事件相关的代码,省略}//最后返回结果,此方法结束return handled;//至此,如果编号8的代码没执行,也就是子View的dispatchTouchEvent没消费事件,那么mFirstTouchTarget的值是空//结合编号3的条件,可以得出结论:当ViewGroup不拦截事件且它的子View消费事件的时候,mFir

2022-04-26 22:27:10 283

空空如也

空空如也

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

TA关注的人

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