自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初学使用ViewPager组件,含BATJM大厂

android:text=“第一个界面”/>3)编写pager的适配器的类public class MyPageAdapter extends PagerAdapter{private ListVL;private ListTL;public MyPageAdapter(Listvl,Listtl){this.VL=vl;this.TL=tl;}//相当于是返回的页卡数量@Overridepublic int getCount() {return VL.size ();}/

2022-03-01 23:34:56 281

原创 关于Android屏幕亮度的一个需求,嵌入式音视频开发书籍

但是啊,系统亮度是需要权限的,但是获取权限会影响用户体验,所以直接PASS。如何解决?然后发现了一个可以监听系统亮度发生变化的方法。//监听屏幕亮度变化getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),true,mBrightnessObserver);/*屏幕亮度变化监听的回调*/private ContentO

2022-03-01 23:29:16 363

原创 关于AES:加密方式,让你的APK无懈可击,android性能优化和内存优化面试

如何防止反编译APK文件的基本构造APK加固的方案原理APK加固总体架构APK打包基本流程Dex文件的意义AES加密项目实战APK加固项目实战APK脱壳技术实战一.APK文件反编译1.什么是反编译定义:利用编译程序从源语言编写的源程序产生目标程序的过程2.怎么进行反编译?先了解apk的文件构造结构二.加固方案思想一个程序员的故事:辛辛苦苦找到一个对象,结婚后发现是个母夜叉。不给管钱就闹,晚上睡觉她趴着睡,导致这程序员无法去洗脚了。然而这个程序员很努力,.

2022-03-01 23:27:51 459

原创 使用Jetpack Compose完成自定义手势处理,html5框架布局

)我们上面所罗列的这些拖动 API 只提供了监听 UI 组件拖动的能力,我们可以根据需求为其拓展功能,这也是这些API所存在的意义。我们从字面上就可以看出每个 API 所对应的含义,由于这些API的功能与参数相近,这里我们仅以 detectDragGestures 作为举例说明。举例说明接下来我们将完成一个绿色方块的手势拖动。在 Draggabel Modifier 中我们还只能监听垂直或水平中某一个方向的手势拖动,而使用 detectDragGestures 所有手势信息都是可以拿到的。如果我们还是

2022-02-04 17:30:35 2504

原创 你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转

1、主工程模块,主要是APP壳,里面不涉及任何逻辑代码,只有权限等配置写在app模块下的AndroidManifest.xml中。2、常规业务模块,该层的组件就是我们真正的业务组件了。我们通常按照功能模块来划分业务组件,例如注册登录、用户个人中心、APP的首页模块等。这里的每个业务组件都是一个小的APP,只需要修改一下对应的module的build.gradle,就可以单独编译,单独打包成APK在手机上运行。3、功能组件,一个公共模块,所有的常规业务模块都依赖他。字符串、颜色、尺寸资源等写在该模块下,该

2022-02-04 17:29:10 2461

原创 你是成熟的 AI 了,应该自己学会补全代码,阿里腾讯PDD等大厂Android面试真题

链接地址: https://github.com/vpj/python_autocomplete和 IDE 的自动补全有什么区别该项目对 Python 代码的自动补全与传统 IDE(如 PyCharm)等不同。IDE 补全基于检索方法,需要从已有代码中进行搜索。以 PyCharm 中的基本补全(Basic Completion)方法为例。基本补全可帮助补全可见区域的类、方法、关键词代码。使用时,PyCharm 会分析补全使用情况,并提供当前位置可能的选择。如果是对空间、参数或变量声明进行补全,则 Py

2022-02-04 17:27:45 428

原创 从零开始仿写一个抖音App——音视频开篇,移动安全入门

如果想要在 cmake 文件中取出这个键值对则需要使用 ${KEY} 的方式set (Tutorial_VERSION_MAJOR 1)set (Tutorial_VERSION_MINOR 0)这里可以设置一个配置文件,我们可以在 TutorialConfig.h.in 中配置 set() 中设置的键值对PROJECT_SOURCE_DIR 表示的是源代码的路径PROJECT_BINARY_DIR 表示的是cmake build 的路径configure_file (“PROJECTSOUR

2022-02-04 17:24:55 11123 3

原创 基于Flutter2,flutter页面跳转卡

});} else {await Future.delayed(Duration(milliseconds: 10));showLoading();}}@overridevoid dispose() {super.dispose();setIsDispose(true);viewModel.showLoadingFun = null;viewModel.dismissLoadingFun = null;}}abstract class BaseViewModel extends

2022-02-03 20:53:38 1241

原创 在校招中,应届生们如何写出简洁的 Android 开发简历,减少被刷的机率

如果学校不太好就不要写是哪所学校了;如果做过具体的项目,把项目相关的展示作为附件提供,如果参加过什么比赛,挑分量重的写;有博客、github、ACM或者值得炫耀的东西建议都写上去;把学过的东西抽取关键字出来,放在简历中;能力要分主次,不要都写精通,也不要都写熟悉或者了解;找工作、投简历要分地方,在工作机会多、与自己求职意向相关的地方去找,比如你在非省会之外的城市读书,建议去省会的大学里面找工作,机会多。上面的建议是结合我自己的实际经历写的,接到短信的概率还是挺高的。..

2022-02-03 20:52:13 519

原创 后端转 Android 我该从何处下手,现在学习 Android 晚吗?

现状看到上述帖子,后端转 Android 我该从何处下手,现在学习 android 晚吗?我的回答是晚还不至于,因为目前是市场趋于稳定正常,这个是市场发展的比如趋势,现在火爆大家都看好的人工智能,大数据,犹如2010年刚开始的移动开发。目前现在是需求量趋于平衡,对初中级水平的开发人员需求量变少,但是对高级以上的需求市场还是很匮乏,特别是对于特定细分领域的Android开发人员也是很匮乏,对Android开发的综合能力,特别是基础原理性要求也越来越高,比如很多公司要求会对对某项要求会优先考虑,比如现在.

2022-02-03 20:49:23 266

原创 四年Android开发逆袭腾讯之旅,安卓开发面试题目

7.说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?8.启动优化怎么优化?9.你写的 rxpay 和 rxlogin 具体怎么实现的?10.kotlin + fullter 方面的腾讯二面1.单例设计模式都写写,静态内部类是怎么保证线程安全的?2.synchronized 底层实现原理,ReentrantLock 公平锁与非公平锁。3.主线程等待所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?4.自定义 view 的一般流程,要注意些什么如何优化,

2022-02-02 19:27:12 292

原创 啃完这些资料,我拿到了腾讯,爱奇艺,Kotlin从入门到进阶实战

4. 趣头条一面在抖音上显示自己做的功能,框架的搭建,实现原理,所做的优化点等。组件化的实现,为什么做组件化,不同实现的优缺点。hashmap的实现原理view的优化,减少层级,异步加载,x2c框架引入,优缺点,textview的优化。mp4播放alpha视频实现的原理一面面试官大概聊了1个小时左右,没让我写算法,细究原理和细节,非常仔细。二面冷启优化的一些方案。数据驱动业务的理解,怎么做,和pm产生分歧怎么解决。我所有做的优化的收益是什么,有什么数据支撑。事件分发机制,举了.

2022-02-02 19:25:47 481

原创 史上最详Android版kotlin协程入门进阶实战(一),2021最新Android开发者学习路线

等等,好像哪里不对,奇怪的知识点突然有点增多啊。上面提到协程体中最后一行是什么类型,最终返回的是什么类型T就是什么类型,好像跟我们想的不一样,返回值不应该是用return吗,学过kotlin的会知道,在的kotlin高阶函数中,lambda表达式如果你没有显式返回一个值,那它将隐式返回最后一个表达式的值。那Job、Deferred和协程作用域又是些啥玩意!不急,慢慢来,我们一个一个的来解释清楚。什么是Job 、Deferred 、协程作用域Job我们可以认为他就是一个协程作业是通过Corout

2022-02-02 19:24:22 1308

原创 史上最详Android版kotlin协程入门进阶实战(三),Android多线程断点续传

是滴,这里只是一种可能,我们现在回到调用continuation的地方,这里的continuation在前面通过DispatchedContinuation得到的,而实际上DispatchedContinuation是个BaseContinuationImpl对象(这里不扩展它是怎么来的,不然又得从头去找它的来源)。val delegate = delegate as DispatchedContinuationval continuation = delegate.continuationinter

2022-02-02 19:22:57 669

原创 史上最全面的Android-ANR-详解,androidstudio汉化

按键响应分发超时(Key Dispatch Timeout)默认 5 s,超过则会出现ANR。广播超时(Broadcast Timeout)默认 10 s,超过则会出现ANR。服务超时(Service Timeout)默认 20 s,超过则会出现ANR。三、ANR 产生的原因在Android系统中,APP 通常运行在一个UI Thread或者叫MainThread里。并且Android中只有一个MainThread 和Main Messag.

2022-02-02 19:20:07 507

原创 反射工具类,如斯优雅,附高频面试题合集

要获取其 I1、I2 值的话,可以如下操作:ReflectUtils.reflect(TestPrivateStaticFinal.class).field(“I1”).get()ReflectUtils.reflect(TestPrivateStaticFinal.class).field(“I2”).get()当然,字段操作也有更高级的操作,比如 Test1.java 测试类如下所示:public class Test1 {public static int S_INT1;publi

2022-02-02 19:17:17 290

原创 前言,flutter页面切换动画

❞用过你觉得最好用的webpack插件 ? 答模块热替换插件什么是SPA应用,相对于多页的缺点 首屏缓慢、不利于SEO爬取CDN的优势在哪里 有用过吗(答出了优势,但没有用过)浏览器缓存问题❝强缓存 Expires 字段(受限制于本地时间) catcel-control字段 max-age 、 public、 private 、no-store 、no-catch协商缓存 Last-Modified服务器发往客户端、f-Modified-Since客户端发往服务器,携带 Last-M.

2022-02-02 19:15:52 506

原创 前端开发:基于移动端的Vue项目关闭双击放大等操作,2021年大厂程序员进阶宝典

接下来对index.html文件里面对应的“viewport”的meta进行修改,添加两个属性的设置:maximum-scale=1.0, user-scalable=0。修改后的代码如下所示:示例效果的对比程序未禁用关闭双击放大等操作的效果:关闭了双击放大等操作的效果:最后都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了..

2022-02-02 19:14:27 558

原创 惨遭社会毒打,公司倒闭突然失业,程序员该如何在下次危机对准时狠狠还击

2、横向多维性很多人有个误解,以为某一项特别出众就能立于不败之地。实际上这种单一优势,竞争力并没有想象中那么无敌。千万别指望达到行业top1%水平就能人生开挂。先不说实现极其困难。就算实现,能匹配你的地方、或者说需要的场合也很少。企业绝大多数时候需要的是A+B+C+D的技能组合型员工,而不是A+++的单一型员工。四、技术迭代如果你留意的话会发现,无论哪个领域,越来越多的重复性工作在逐渐被替代。不少人以为只要努力就能翻身,殊不知,只有努力,不会翻身。不定期抬起头,被社会毒打后汲取经验,然后

2022-01-31 19:10:28 167

原创 快速排序相关算法题,安卓app开发入门书籍推荐

举例来说,现有数组 arr = [3,7,8,5,2,1,9,5,4],分区可以分解成以下步骤:首先选定一个基准元素,这里我们元素 5 为基准元素(基准元素可以任意选择):首先选定一个基准元素,这里我们元素 5 为基准元素(基准元素可以任意选择):pivot↓3 7 8 5 2 1 9 5 4将基准元素与数组中最后一个元素交换位置,如果选择最后一个元素为基准元素可以省略该步:pivot↓3 7 8 4 2 1 9 5 5从左

2022-01-31 19:09:04 213

原创 微信小程序开发之——获取系统信息,2021阿里、网易、京东等大厂最新Android面试题

用户字体大小{{result.fontSizeSetting}}客户端基础库版本{{result.SDKVersion}}设备性能等级{{result.benchmarkLevel}}设备方向{{result.deviceOrientation}}允许微信使用相册{{result.albumAuthorized}}允许微信使用摄像头{{result.cameraAuthorized}}允许微信使用定位{{result.locationAuth.

2022-01-31 19:07:39 796

原创 微信小程序之微信登陆 —— 微信小程序教程系列,计算机移动应用开发

success: function(res) {console.log(res);if (res.code) {//发起网络请求//doSomething} else {console.log(‘获取用户登录态失败!’ + res.errMsg)}},fail: function(){console.log(“启用wx.login函数,失败!”);},complete:function(){console.log(“已启用wx.login函数”);}});TIPS:上面这段

2022-01-31 19:06:14 589

原创 征服面试官系列: Binder 核心机制和进程间通信,你都理解了吗

就这样,一个远程的,提供成绩查询的服务就完成了。2.客户端的实现客户端自然而然的是要连接服务端进程成绩查询。因此,我们在客户端的Activity中取绑定GradeService进行成绩查询。代码如下:public class BinderActivity extends AppCompatActivity {// 远程服务的Binder代理private IBinder mRemoteBinder;private final ServiceConnection mServiceConnectio

2022-01-31 19:04:49 773

原创 征服Android面试官路漫漫(三),rrxjava原理

调用了 ContextImpl.createActivityContext() 方法。static ContextImpl createActivityContext(ActivityThread mainThread,LoadedApk packageInfo, ActivityInfo activityInfo, IBinder activityToken, int displayId,Configuration overrideConfiguration) {…// 创建

2022-01-31 19:01:59 1120

原创 并发编程之Android中AsyncTask使用详解(四),android开发计算器界面

android:layout_width=“match_parent”android:layout_height=“match_parent”android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBo

2022-01-31 18:59:09 610

原创 字节跳动面试官亲述:Android开发学会了这些技术,你离大厂不远了

sleep 是 Thread 的静态方法,可以在任何地方调用wait 是 Object 的成员方法,只能在 synchronized 代码块中调用,否则会报 IllegalMonitorStateException 非法监控状态异常sleep 不会释放共享资源锁,wait 会释放共享资源锁lock 和 synchronizedsynchronized 是 Java 关键字,内置特性;Lock 是一个接口synchronized 会自动释放锁;lock 需要手动释放,所以需要..

2022-01-30 20:24:22 154

原创 字节跳动Android高级工程师:失业也许会迟到,但绝不会缺席

要解决上面的这两个问题,需要一个衡量人能力的标准,这个标准不仅适用于招聘,同样也适用于考核、职等评定等,我叫这种标准为技能树。这里所说的技能树,不仅包含技术能力,还包括工作能力。我始终认为一个人的工作能力并不同等于他的技术能力,工作能力除技术本身外,还包括这个人的综合素质(合作交流、工作态度、自我实现欲望等)。很多人技术能力不错,但工作上仅仅是一个执行者,难当大任。究其原因就是开发者能力不够,那么进入大厂到底需要哪些知识呢?哪些技能是大厂必备技能呢?该如何去提升呢?###三、人才必备技能下面列出

2022-01-30 20:21:32 141

原创 知识大爆炸:字节跳动面试官一招差点KO我,一共面试了3轮

◆ 继续加深理解“稍微深入的知识点“中所定义的内容◆ 了解系统核心机制:了解SystemServer的启动过程了解主线程的消息循环模型了解AMS和PMS的工作原理能够回答问题”一个应用存在多少个Window?“了解四大组件的大概工作流程…◆ 基本知识点的细节:Activity的启动模式以及异常情况下不同Activity的表现Service的onBind和onReBind的关联onServiceDisconnected(ComponentName

2022-01-29 20:24:38 2581

原创 知乎万赞,值得反复刷的Android面试题,金九银十正确打开方式

3.final 、finally、finalize 区别final关键字用于基本数据类型前:这时表明该关键字修饰的变量是一个常量,在定义后该变量的值就不能被修改。final关键字用于方法声明前:这时意味着该方法时最终方法,只能被调用,不能被覆盖,但是可以被重载。final关键字用于类名前:此时该类被称为最终类,该类不能被其他类继承。用try{}catch(){} 捕获异常时,无论室友有异常,finally代码块中代码都会执行。finalize方法来自于java.lang.Object,

2022-01-29 20:23:13 134

原创 看完这篇还不明白Handler你砍我,android混合开发面试

createMap(t, value);}set方法首先获取到了当前的线程,然后获取一个map。这个map是以键值对形式存储内容的。如果获取的map为空,就创建一个map。如果不为空就塞进去值。要注意的是,这里面的key是当前的线程,这里面的value就是Looper。也就是说,线程和Looper是一一对应的。也就是很多人说的Looper和线程绑定了,其实就是以键值对形式存进了一个map中。没什么高大上的。你来你也行。而这个Looper的构造方法我们也得去看一下:private Looper(boo

2022-01-29 20:21:48 164

原创 电脑硬件知识入门之机械键盘篇,android入门基础

相对于普通薄膜键盘来说,机械键盘的敲击声音大是它的一大缺点,但也有好的静音机械键盘,这个就比较昂贵了。而普通薄膜键盘一般来说敲击声音都很小。3.机械键盘的分类机械键盘可分为茶轴、青轴、白轴、黑轴以及红轴。正是由于每一个按键都由一个独立的微动组成,因此按键段落感较强,从而产生适于游戏娱乐的特殊手感,故而通常作为比较昂贵的高端游戏外设,亦是程序员的标准设备。那么每种轴都有什么特点 及适合使用的情况是什么呢?①黑轴黑轴被称为最原始最纯粹的机械轴,有着超短触发距离与最长使用寿命。机械感直爽:从顶部到底部

2022-01-29 20:15:58 3730

原创 玩转Gradle ,动不动就Build Running,这玩意到底在干嘛

gradle-wrapper.properties 配置文件内容如下:Windows下指向:C:\Users\用户名.gradle 目录,打开可以看到下载各个版本的gradle:封装一层还有个好处:在没有安装Gradle的机器上也可以使用Gradle构建项目,但有一点要注意:每个Gradle版本对应一个Daemon进程,基本512M起步,电脑配置不佳 的情况下,应尽量避免多个版本的Gradle同时运行。建议:自己管理Gradle,即使用本地创建Gradle环境,AS的配置方法如下:5..

2022-01-29 20:14:32 1760

原创 条码扫描二维码扫描——-android-源码简化,阿里P7手把手教你

In this example, the format string has two arguments: %1sisastringands is a string and %2sisastringandd is a decimal number. You can format the string with arguements from your application…“经过以上步骤后项目应该就可以运行了。但是ZXing的android项目东西太多了,有很多是我们不需要的,得新建另一个项目简化它。

2022-01-28 20:46:57 698

原创 本科Android开发小伙的秋招面试逆袭之旅(斗鱼、字节,手机软件开发app

Bilibili是我一直心心念念想要进的公司,可以第二轮就挂掉了…B站一面1.自我介绍2.treemap、红黑树、完全平衡二叉树3.快速排序和插入排序4.个大致有序的数组如何排序,最快时间复杂度5.如何自定义实现一个FlexLayout6.RecyclerView的回收复用机制7.如何实现RecyclerView的局部更新8.说说对泛型的了解,Retrofit中的泛型是怎么解析的9.说说对binder机制的了解10.进程的状态,线程的状态,两者有区别吗11.synchroniz..

2022-01-28 20:45:31 1064

原创 朋友,在准备大厂面试吗,内部技术了解一下,Android框架体系架构的知识

前端微服务在字节跳动的打磨与应用传统前端业务通常会根据业务线集成在一个站点上,随着业务复杂度上升,包体积会迅速变的过大。为了适应这个变化往往需要更多的开发者、更细粒度的团队组织。分组开发时大家的模块解耦到各自完成,上线时糅合在一起运行,产生出层出不穷的分支合并、代码回滚,都会造成合作效率的骤降。这正是头条号平台在 17 年时面临的问题。本文讨论了微前端在字节跳动的应用情况,内容主要分析了微前端具体落地的步骤和两年来的使用情况。其中分析的部分主要讲到一些实际问题和我们的应对,落地情况强调了实现的过程.

2022-01-28 20:44:07 733

原创 最新的一版,通用Android-客户端架构设计,只有你还没看过

###日志系统日志系统要完成以下几个功能:1、Debug时的日志需求2、日志写入文件的需求,方便上线查看3、日志上报4、日志加密系统日志监控:日志奔溃信息监控修改医行者中的日志系统可以达到需求, 也可以修改Github开源项目格式化日志输出项目: Logger 和 日志收集项目:Log 达到要求。网络系统Gitbub: OkHttphttps://github.com/square/okhttpOkHttp封装:HttpGet、HttpPost、File Upload,OKHttp的使

2022-01-28 20:42:42 951

原创 方法对了,你做1年Android开发能顶别人做10年,音视频编解码技术

简单说,就是你清楚知道自己要去哪里,利用地图路线和先进的交通工具,你当然可以安全、快速抵达目的地。所需的技能,我整理成了一个学习思维脑图,还有相关的PDF资料,没有学习方向,或者需要建立自己知识体系的,都可以在我的GitHub里获取一下!遇到瓶颈怎么突破进阶之前不少人都问我同一个问题,就是我学习Android有两三年了,但是遇到瓶颈了,感觉没什么进步,到底怎么才能进阶呢?我相信有不少人遇到这样的困扰,那么今天我就以一个过来人的身份给大家解答这个问题。1.看一些进阶的书籍看书是每个阶段进步

2022-01-28 20:39:51 389

原创 拿下阿里,百度,头条,kotlin常量

A:不知道…Q:虚函数有什么作用A:不知道…Q:智能指针听说过吗A:没听说过…内心os(啥,这玩意是啥…)…就是在这种情况下,面试官还拿着准备好的题目一直面了我40分钟,面试体验很棒,QAQ2018.04.某天   ——  去哪儿后台开发实习面试Q:知道二叉树的各种遍历顺序吗?A:知道,前序中序后序,分别说了下怎么遍历的Q:好,那你手写一下中序遍历…A:拿笔挣扎了好久…一个字没写Q:要不你再好好想想,你都知道遍历顺序了,应该可以写出来的A:我真不会写…

2022-01-27 20:02:28 1881

原创 把书读薄 _ 《设计模式之美》规范与重构,android游戏sdk开发

}return isNull;}}// 测试用例类public class TextTest {public void testToNumber() {Assert.assertEquals(123, new Text(“123”).toInt());}public void testToNumber_nullOrEmpty() {Assert.assertNull(null);Assert.assertNull(new Text("").toInt());}public void

2022-01-27 19:58:14 3143

原创 扯一扯HTTPS单向认证、双向认证、抓包原理,目前最稳定和高效的UI适配方案

然而HTTP也有以下明显缺点:通信使用明文,内容可能被窃听不验证通信方的身份,因此有可能遭遇伪装无法证明报文的完整性,所以有可能遭到篡改这样,HTTPS就登场了。HTTPS中的S表示SSL或者TLS,就是在原HTTP的基础上加上一层用于数据加密、解密、身份认证的安全层,即HTTP + 加密 + 认证 + 完整性保护 = HTTPS加密相关的预备知识:对称加密和非对称加密。对称加密 : 加密和解密数据使用同一个密钥。这种加密方式的特点是速度很快,常见对称加密的算法有 AES;非对称加

2022-01-27 19:56:48 243

空空如也

空空如也

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

TA关注的人

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