自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020上半年百度Android岗(初级到高级)面试真题全收录

dispatchTouchEvent:方法返回值为true表示事件被当前视图消费掉;返回为super.dispatchTouchEvent表示继续分发该事件,返回为false表示交给父类的onTouchEvent处理。onInterceptTouchEvent:方法返回值为true表示拦截这个事件并交由自身的onTouchEvent方法进行消费;返回false表示不拦截,需要继续传递给子视图。如果return super.onInterceptTouchEvent(ev), 事件拦截分两种情况:  1.

2022-01-04 20:07:30 670

原创 2020Android开发陷入饱和,移动开发者未来的出路在哪里,我们该如何让应对?

视图系统(View System):一个可拓展的视图集合,用于创建应用程序用户界面3,系统运行库层程序库Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。他们通过Android应用程序框架为开发者提供服务,以下是一些核心库:系统C库(libc):一个从BSD继承来的标准C系统函数库,他是专门为基于embedded linux的设备定制的媒体库(Media Framework):基于Packet Video opencore; 该库支持多种常用的音频、视频格式回放.

2022-01-04 20:06:05 369

原创 Android 实现搜索历史(2),附相关架构及资料

int cLeft = left + lp.leftMargin;int cTop = top + lp.topMargin;int cRight = cLeft + child.getMeasuredWidth();int cBottom = cTop + child.getMeasuredHeight();//进行子View进行布局child.layout(cLeft, cTop, cRight, cBottom);left += child.getMeasuredWidth() + lp.

2022-01-03 11:11:27 349

原创 Android 基础:Materia Design 定义视图阴影elevation和创建卡片CardView

<android.support.v7.widget.CardViewandroid:id="@+id/card_view"android:layout_width=“200dp”android:layout_height=“200dp”card_view:cardCornerRadius=“3dp”>…</android.support.v7.widget.CardView>其中 card_view:cardCornerRadius ..

2022-01-03 11:08:37 233

原创 Android Volley:使用方法总结及实例解析,【深度思考

public LruBitmapCache(int maxSize) {super(maxSize);}public LruBitmapCache() {this(getDefaultLruCacheSize());}@Overrideprotected int sizeOf(String key, Bitmap value) {return value.getRowBytes() * value.getHeight() / 1024;}@Overridepublic Bitmap g

2022-01-03 11:02:58 135

原创 Android ViewBinding使用详解,kotlin打包成exe

1.调用inflate()包含在生成的绑定类中的静态方法。这会为要使用的活动创建绑定类的实例。2.通过调用getRoot()方法获取对根视图的引用。3.将根视图传递给以 setContentView() 使其成为屏幕上的活动视图。实例如下:private ActivityProgressbarBinding activityProgressbarBinding;@Overrideprotected void onCreate(@Nullab..

2022-01-03 11:01:33 353

原创 Android UI—仿微信底部导航栏布局,Android学习笔记在互联网上火了

android:text=“我”android:textColor="@color/tab_selector_tv_color" />看下新建的布局和资源文件:其中tab_selector_tv_color.xml主要是用于控制切换的时候显示下面字体的颜色:<?xml version=``"1.0" encoding=``"utf-8"``?><selector xmlns:android=``"http://schemas.android.com/apk/res/an

2022-01-03 11:00:08 1302

原创 Android-NDK开发Crash错误定位,android适配方案

01-01 17:59:38.586: I/DEBUG(253): r8 75226d08 r9 00000000 sl 417c5c38 fp bedbf13401-01 17:59:38.586: I/DEBUG(253): ip 41705910 sp bedbf0f0 lr 4012e169 pc 4013d10c cpsr 000f0010// 省略部份日志 。。。。。。01-01 17:59:38.596: I/DEBUG(253): backtrace:0

2021-12-31 12:07:49 600

原创 Android-Native进程间通信实例—Socket本地通信服务端进程异常退出解决办法

close(clifd);pthread_exit(NULL);}}执行结果如下:过程分析,1. 先执行服务端程序,然后运行客户端程序,客户端程序强制退出(通过快捷键ctrl+c),服务端client_thread中write返回-1,线程正常退出。2. 这时候服务端程序还阻塞在accpet等待下一次的客户端连接请求,运行新的客户端程序,然后强制退出客户端,发现服务端进程居然直接退出了!咋办啊!感觉代码没有任何问题了,为啥还会出错,虽然很明确一定是write的时候没能写进客户端导致的进程奔

2021-12-31 12:06:45 1516

原创 Android-JVM面试专题:你知道面试官为什么要问JVM原理吗?原理包含哪些

比如 GC 的时候必须要等到 Java 线程都进入到 safepoint 的时候 VMThread 才能开始执行 GC,循环的末尾 (防止大循环的时候一直不进入 safepoint,而其他线程在等待它进入safepoint)方法返回前调用方法的 call 之后抛出异常的位置6. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?先标记,标记完毕之后再清除,效率不高,会产生碎片**复制算法:**分为 8:1 的 Eden 区和

2021-12-31 12:04:28 351

原创 Android-Jetpack架构组件(二)带你了解Lifecycle,给2021的移动开发一些建议

@Overrideprotected void onResume() {super.onResume();myPresenter.onResume();}@Overrideprotected void onPause() {super.onPause();myPresenter.onPause();}}class MyPresenter{《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFo

2021-12-31 12:02:09 213

原创 Android-APK:为何你的应用老是被破解,该如何有效地做签名校验

packageInfo.signatures = new Signature[this.sign.length];for (int i = 0; i < packageInfo.signatures.length; i++) {packageInfo.signatures[i] = new Signature(this.sign[i]);}ret

2021-12-31 12:00:50 431

原创 Android(java)回调函数经典示例,8年Android开发教你如何写简历

1.使用java回调函数来实现一个测试函数运行时间的工具类public class TestObject {/**一个用来被测试的方法,进行了一个比较耗时的循环*/public static void testMethod(){for ( int i= 0 ; i< 100000000 ; i++){}}/**一个简单的测试方法执行时间的方法*/public void testTime(){long begin = System.currentTimeMillis(

2021-12-31 11:58:48 241

原创 Android项目中gradle文件里面的productFlavors一些常用配置

看看发生了什么:当然,相应的打包时的项目选择也多了起来:2.添加一些项目常用配置 现在有那么多环境的包,有啥用?在每个不同环境的包里面配置自己需要的东西啊,比如咱们刚才说的,每个环境的API地址不一样,怎么;再比如说,我开发环境需要支持自动升级,可我正式环境不想支持了,需要一个常量做一个标示,怎么办?盘他就得了!flavorDimensions “mode”productFlavors{dev{dimension “mode”buildConfigField(“String”, “HTT

2021-12-30 13:31:18 763

原创 Android音视频开发入门(1)基础概要,flutter视频教程

包括:H.261、H.262、H.263+、H.263++、H.264(就是与MPEG4 AVC合作的结晶)音频编码常见的音频编码格式有 AAC、MP3、AC3AAC一种专门为声音数据设计的文件压缩格式,与MP3不同,它采用了全新的算法进行编码,更加高效和高性价比。利用AAC格式,在感觉声音质量没有明显降低的前提下(并且音质比MP3更好),可使文件更加小巧。缺点:有损压缩,与时下流行的《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.

2021-12-30 13:30:23 203

原创 Android面试官:Window连环十二问你顶得住吗?,flutter面试题

面试官:关于Window,你了解多少呢?看看下面这些问题你都能答上来吗。如果你遇到这些问题Window是什么?和View的关系?WindowManager是什么?和WMS的关系?怎么添加一个Window?Window怎样可以显示到锁屏界面Window三种类型都存在的情况下,显示层级是怎样。Window就是指PhoneWindow吗?PhoneWindow什么时候被创建的?要实现可以拖动的View该怎么做?Window的添加、删除和更新过程。A

2021-12-30 13:28:33 1357

原创 Android面经:我的阿里春招之路分享,五面后终拿到Offer

二面二面很重要,二面很重要,二面很重要。二面对于你是否能通过面试,是否能最终从池子中被捞出来都很重要。一面面完的第二天下午收到来自杭州的电话,约了晚上九点的时间,且通知了视频面试和在线编程。一阵慌张……看了那么多面经,没见过谁连续两次编程的……晚上九点,准时登录视频网址后,面试官已经在线。二面面试官稍显严肃,给人感觉非常严谨。上来简单自我介绍后,他说一面评价比较好,他会面试得细致一点,可能时间会稍长。当时心神一紧,做好了鏖战的准备。二面问的内容非常多,且覆盖范围很广,大概问题如下:JVM方面jav

2021-12-30 13:24:52 389

原创 Android面经分享,失业两个月,五一节前拿到Offer,十年Android编程开发生涯

接下来是面试题:公司一===================================================================组件化和arouter原理recyclerview和listview区别glide流程,缓存前压缩,缓存命中APP性能优化,内存优化,布局优化,绘制优化,内存泄漏Http和Https区别socket心跳包jvm虚拟机,堆和栈的结构activity启动模式,有哪些不同stack栈的特点,自定义sta

2021-12-30 13:23:56 93

原创 Android隐藏系统状态栏(沉浸式状态栏)和设置状态栏颜色

如果我猜对了,那么就继续看吧!2. 重新设置你的TitleBar这个解决方法更简单,就是改变TitleBar的高度和paddingTop,看下面示例就会豁然开朗:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {ViewGroup.LayoutParams params = view.getLayoutParams();int topMargin = getStatusBarHeight(view.getContext()).

2021-12-30 13:23:01 456

原创 Android开发要达到阿里P7水平,很难吗,rxjava面试题

但工作过一年后你会发现,自己的工作重点就是**将找各种各样的组件、框架,拖拖拽拽,改改样式。**在极端情况下出现了问题后(比如部分机型上崩溃,加载图片慢),也不知道该如何解决!造成这种局面的原因:自己的意识不够,格局受限,在向上提升方面也没有完整的规划。一,职业发展规划从自身规划的角度讲,技术上的进阶分如下几个阶段:1.做好业务需求的功能。这个是初级程序员就应该有的能力。2.解决极端情况下的技术问题,比如性能优化,OOM等。稍有点规模的公司,肯定都会遇到这种问题,比如上文中说的App在部分

2021-12-29 14:52:33 152

原创 Android开发老生新谈:从OkHttp原理看网络请求,kotlin扩展函数equal

interceptors += BridgeInterceptor(client.cookieJar)interceptors += CacheInterceptor(client.cache)interceptors += ConnectInterceptorif (!forWebSocket) {interceptors += client.networkInterceptors}interceptors += CallServerInterceptor(forWebSocket)val

2021-12-29 14:51:29 129

原创 Android开发简记:Java和Android程序员都应该掌握的虚拟机知识

局部变量表存储每个变量值,也就是平时在方法内部定义的局部变量以及在调方法时传的参数,都是存储在局部变量表里。当虚拟机把java文件编译成字节码文件的时候,会对程序里的方法进行检查,然后确定每个方法需要分配的最大局部变量表的容量。操作数栈,就是存储要进行操作的变量,是后入先出的结构栈,跟局部变量表一样也是在编译的时候就会确定好它的最大容量。当方法执行的时候,刚开始操作数栈是空的,然后随着执行的过程中会对操作数元素进行压栈和弹出。返回地址,是确保方法在退出后返回到方法被调用的位置的地址信息。当一个方法在正常

2021-12-29 14:50:11 63

原创 Android开发必看:一文教你完全理解DataBinding框架,Android性能优化推荐书

class MainActivity : DataBindingBaseActivity<ActivityMainBinding, MainViewModel>(R.layout.activity_main, BR.viewModel) {// 除了主 vm,还可以有其他的 vm,来自 fragment-ktx 的 viewModels 扩展,可快速一行代码创建实例private val mTestViewModel by viewModels()override fun initDa

2021-12-29 14:49:11 506

原创 Android开发实战宝典,附答案,移动端跨平台开发

Service 的获取拦截器机制注解处理深入解析AsyncTask 源码(一款 Android 内置的异步任务执行库)功能概述创建执行取消线程池不足之处深入解析Volley 源码(一款 Google 推出的网络请求框架)VolleyRequestQueueExecutorDeliveryNetworkDispatcherCacheDispatcherRequestResponseNetw..

2021-12-29 14:47:57 97

原创 Android开发前景及现状分析,高级android工程师

Android 2.1Donut(甜甜圈):2009年9月15日发布。Android 2.02009年10月26日发布。二、Android系统的市场前景1.Android平台优势1.1 平台开放性1.2 硬件的丰富性1.3 开发便捷性1.4 Google应用的无缝结合性1.5 安全性2.Android的市场前景2.1 手机等移动终端用户激增,为Android系统的广泛应用提供了用武之地。2.2 手机厂商和运营商的大力支持和应用2.3 从Android平台的优势中也可以看出Andro

2021-12-29 14:46:52 1305

原创 Android开发八年,面试50,吐血整理

3.有技术博客和github开源项目的一定写在最前面。这是活生生的例子。我在面试华为的时候面试官就特意去看了我的csdn上的博客。然后说写的还是不错的,给他留下了一个不错的印象,所以这点是绝对的加分项最好就是写在最前面。刷面试题这块其实一开始我并没有刷特别多,也就是简单的看了下一些基础性的知识点。因为我始终觉得看的越多越记不住,而且最重要的是你根本不知道面试官会怎么问,与其盲目的看知识点倒不如先出去找几家小公司面试找找感觉,知道面试官会针对哪些地方询问,再回来针对性的看。Android面试过程所需要

2021-12-29 14:45:32 104

原创 Android开发两年,跳槽面试小公司面试官说我可以试试大厂

JSBridge安全漏洞解决方法:知道有安全问题,但是没仔细研究ClassLoader双亲委派实现原理IntentService的实现原理平时用过哪些框架:RxJava和Retrofit重构了资讯模块淘客吧View的绘制流程、承载的数据结构、树的好处算法题:把0排到最前面事件分发机制MVC MVP MVVM的区别ClassLoader的过程,ClassLoader的好处Handler内存泄露多线程机制HTTPS工作原理数据怎么..

2021-12-29 14:44:37 516

原创 Android开发—浅谈人脸检测的简易实现,flutter二维码识别

android:src="@mipmap/ic_launcher" /><LinearLayoutandroid:layout_width=“wrap_content”android:layout_height=“wrap_content”android:layout_gravity=“center”android:orientation=“horizontal”android:paddingTop=“6dp”><Buttonandroid:id="@+id/butt

2021-12-29 14:43:29 292

原创 Android开发10年,小公司报了薪资没下文,android插件开发过时

根据我的经验,UI 逻辑与其它逻辑耦合在一起,会导致代码的可维护性越来越差,迟早会使用代码变得难以理解,无法阅读。到最后,可能会因为功能上的一点小变化,引起很大的副作用。要将 UI 逻辑与其它逻辑进行分离,可以用使用 Model- View - X 的架构模式。例如: Model-View-Contoller(MVC)、Model-View-Presenter(MVP)、Model-View=ViewModel(MVVM)。这些架构模式都属于同一类架构,当然,这一类架构不仅仅包含列举的这几个,还有其它的架

2021-12-29 14:42:31 150

原创 Android开发:你错就错在以为靠技术就能生存下,作为Android开发程序员

1、在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你更不要认为那些从事市场开发,跑腿的人,没有前途。不清楚你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑,有的时候如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开发,你平时除了.

2021-12-28 13:27:18 95

原创 Android开发项目实战:实现折叠式布局,android组件化开发与sdk

android:layout_width=“match_parent”android:layout_height=“200dp”><android.support.design.widget.CollapsingToolbarLayoutandroid:layout_width=“match_parent”android:layout_height=“match_parent”app:layout_scrollFlags=“scroll|exitUntilCollapsed”app:

2021-12-28 13:26:14 1381

原创 Android开发面试:requestLayout() 这么问,面试者直呼

我脑补的这个场景,用罗翔老师的话来讲是 「法律允许,但是不提倡」。当 Activity 不在前台的时候,就应该把 requestLayout() 方法停掉嘛。我们知道的,这个方法会从调用的 View 一层一层往上调用,直到 ViewRootImpl.requestLayout() 方法,然后会从上往下,触发 View 的测量和布局甚至绘制方法。非常之浪费嘛!错误非常之低级!但是果真如此吗?偷偷告诉大家,其实一直调用也没关系,Google 大神已经考虑到了,不信且看后文。电竞主播芜湖大司马,有一句网

2021-12-28 13:24:57 573

原创 Android开发的前景到底怎么样2016?,android游戏开发的案例

这个是很多人关心的,说最近感觉 Android 开发饱和了,找工《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享作很难,所以纠结要不要学习 Android 。不得不说,前两年的移动开发确实很火,为什么?因为一个行业刚兴起,智能手机发展之快速让人震惊,加上创业的越来越多,基本上创业都需要做一个 App,以上种种原因综合下来导致移动开发人才特别紧缺,可以说随便能鼓捣出来点东西都

2021-12-28 13:21:37 254

原创 Android开发岗,在字节跳动5年,30岁的我被刚升职后辈一句话惊醒

####那么为什么会出现这个现象,如何避免呢?作为一个职场人来说,我们应该尽早懂得“职场永远是年轻人的天下”这个道理。1、拿着仅能温饱的薪水,过着安逸等“死”的日子2、认为年轻就是资本,还不着急的你3、温室环境,蒙蔽了你的双眼建议1.尽早规划职业生涯2、提升学历,提升技能(大厂有些确实看着学历,学历是敲门砖,学历就是你学习能力的表现)3、一定要努力创造副业(李嘉诚说“打工是最低效的投入”。)别等到30岁了,才忽然惊醒。那时已经晚了。趁着年轻,把未来的路一步一个脚印走踏实了。

2021-12-28 13:19:23 545

原创 Android开发五年,成功入职腾讯,这是我的复盘和总结,写给Android开发的小程序布局指南

但是他们中更多的人不愿意承认,努力可以让选择项变多,努力可以减少运气的成分。说实话,我也是赞同 “选择大于努力” 的,只是我不认同 “努力无意义”。制定计划失业这段时间,我在家待了一个月,看了很多人物传记,发现他们这些大人物都有共同的经历模型:他们都会在人生最意气风发的年纪经历低谷失败,最关键的是他们都重新尝试更多机会才获得最终的成功。朋友们,这些传记其实都在传递同样一个信息,努力站起来才能拯救自己。期间,我也参加过几次面试,但是,都没有拿到一个满意的offer。我写下了几千字的反思,复盘了几次面

2021-12-28 13:17:18 136

原创 android横竖屏切换问题,2021最新Android算法相关面试大全

**二、横竖屏切换**如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下两种方法来切换布局:1)在res目录下建立layout-land和layout-port目录,相应的layout文件名不变,比如main.xml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,横竖屏切换时程序为调用Activity的onCreate方法,从而加载相应的布局。2)假如布局资源不按照如上设置,则可以通过java代码来判

2021-12-27 13:06:52 197

原创 Android框架-Google官方Gson解析,app保活面试题

**注解的作用:**转换 key 关键字,json 转换成对象是,json 字段的 key 默认必须和声明类的字段名称一样。但是如果服务器返回的数据中 key 是关键字,这该怎么办?例如 key 是 case、switch 等,我们在声明类的时候是不能用这些字段的。或许你会让服务端那边改动,那服务端可能要改动非常的大,但是实际情况是不太愿意去改的。而这时候重命名注解就派上用场了。还有就是如果服务端返回的 json 的 key 太冗余、或是不直观,这是就可以简化一下,代码看起来比较的优雅。#####替换关

2021-12-27 13:05:48 195

原创 Android架构设计——MVC,kotlinui封装

MVC是Model View Controller的缩写,它是指模型(model)-视图(view)-控制器(controller)这一设计架构。其中:Model(模型层):负责数据的加载和存储View(视图层):负责界面数据的显示,与用户进行交互Controller(控制器层):负责逻辑业务的处理流程目的架构设计的目的是通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。提高开发效率,且能方便后续的测试及问题定位。但是对于不同量级,不同需求的APP,适合的架构是视

2021-12-27 13:04:30 279

原创 Android数据库升级,【原理+实战+视频+源码

下面看一个软件的升级的例子软件v1.0安装v1.0,假设1.0版本只有一个account表,这时继续走SQLiteOpenHelper的onCreate,不走onUpgrade软件v2.0有两种安装软件的情况:1)v1.0 --> v2.0 不走onCreate,执行onUpgrade2)v2.0 (直接安装)直接onCreatev1.0只有一个account表,软件升级到2.0需要新增一个member表,有两个方法,一是在onUpgrade中添加member方法,另一种就是用

2021-12-27 13:01:10 135

原创 Android插件化——高手必备的Hook技术,这些面试官常问的开发面试题你都掌握好了吗

Hook分类根据Hook的API语言划分,分为Hook Java 和 Hook Native根据Hook进程划分,分为应用进程Hook 和 全局 Hook代理模式代理模式是Hook模式的基础原型,代理模式指为某个类的操作提供代理执行代理模式的意义在于无需修改原来的程序结构,增加或扩展程序的功能代理类的实现:声明一个功能接口,代理类和真实类都实现这个功能接口,在代理类中保存真实类的对象,当调用代理类执行方法时,内部调用真实对象执行;interface Func.

2021-12-27 12:58:56 436

空空如也

空空如也

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

TA关注的人

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