自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二本吊打985?看到原因,网友们服气了

事情是这样的,当时我推荐的那个学生一路“过五关斩六将”,表现的还是挺优秀的,到了后面,就剩下他和另外一个学生,两个人正在争抢一个名额,但是他在学历上有很大的弱势,另外一个是985学校毕业的,而他只是普通二本院校。当时大家都为他感到可惜 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 ,毕竟到最后节点遇见了强敌,在这个时间失败了挺可惜的。但是大家没想到的是,这个普通二本毕业生对公司的技术提问对答如流。大家了解到,他曾在小公司实习,做过性能优化,也做过音视频开发,

2022-04-15 18:05:21 183

原创 一文彻底搞懂EventBus 3

ThreadMode可以指定的模式有:ThreadMode.POSTING:默认的线程模式,在哪个线程发送事件就在对应线程处理事件,避免了线程切换,效率高。ThreadMode.MAIN:如在主线程(UI线程)发送事件,则直接在主线程处理事件;如果在子线程发送事件,则先将事件入队列,然后通过 Handler 切换到主线程,依次处理事件。ThreadMode.MAIN_ORDERED:无论在哪个线程发送事件,都将事件加入到队列中,然后通过Handler切换到主线程,依次处理事件。ThreadMode

2022-04-15 18:02:16 336

原创 一个 Android MVVM 组件化架构框架

模块app:app壳 工程,是依赖所有组件的壳,该模块不应该包含任何代码,它只作为一个空壳存在,由于项目中使用了EventBusAPT技术,需要索引到各业务组件的对应的APT生成类,所以在 app壳 内有这一部分的代码。buildGradleScript:脚本模块,该模块下存放的都是各个组件及封装的一些 Gradle 脚本文件。初衷是将所有的脚本统一管理,事实上我在组件内查找脚本的习惯还是没有改掉。buildSrc:这是一个特殊的文件夹,负责项目的构建,里面存放着一些项目构建时用到的

2022-04-15 18:00:28 2639

原创 【开源项目】小程序版 玩安卓

[](()老铁,点个star💋[](()github:[https://github.com/yechaoa/wanandroid_mini](()个人类型的小程序暂不支持使用web-view,打开调试即可[](()🔥截图===============================================================| | | || :-: | :-: | :-: || 首页 | 体系 | 导航 || | | || :-: | :-: |

2022-04-15 17:58:47 139

原创 valgrind内存泄露和线程竞态检测

}int main(void){test();return 0;}将程序编译生成可执行文件后执行: valgrind --leak-check=full ./程序名输出结果如下:==4832== Memcheck, a memory error detector==4832== Copyright © 2002-2010, and GNU GPL’d, by Julian Seward et al.==4832== Using V..

2022-04-15 17:54:37 3443

原创 Realm数据库使用教程(五)

}}, new Realm.Transaction.OnError() {@Overridepublic void onError(Throwable error) {UIUtils.showToast(“删除失败”);}});异步删除(推荐使用):delete(xxx.class)//删除指定的数据库realmAsyncTask = mRealm.executeTransactionAsync(new Realm.Transaction() {@Overridepublic vo

2022-04-15 17:52:39 2552

原创 OpenGL 学习系列--基础的绘制流程

这里,假定绘制一个位于原点的点(0,0),那么映射之后的位置就手机屏幕的中心了。基本图元解决了位置的问题,接下来就是形状和颜色的问题。如同 Android 的 Canvas 对象提供了一些方法来完成基本的绘制:drawPoint、drawRect、drawLine 等,OpenGL 程序也提供且仅提供了三种基本的图元来完成绘制。点线三角形其他的所有形状都是基于这三种图元来完成的,比如矩形就可以看成是两个三角形拼成的。由于我们要绘制的是一个点,在坐标系中,一个坐标就可以代替一个点了。假设要

2022-04-15 17:50:17 740

原创 Linux mmap内存映射

四、网上测试实例(1)demo1 演示一下,将文件/tmp/file_mmap中的字符转成大写,分别使用mmap与read/write二种方法实现。 先创建/tmp/file_mmap文件,该文件写入www.baidu.com,使用strace统计系统调用。/*@file: t_mmap.c*/#include <stdio.h>#include <ctype.h>#include <sys/mman.h> /mmap munmap/#include &

2022-04-15 17:48:01 2702

原创 Java线程(七):Callable和Future

}};FutureTask future = new FutureTask(callable);new Thread(future).start();try {Thread.sleep(5000);// 可能做一些事情System.out.println(future.get());} catch (InterruptedException e) {..

2022-04-15 17:45:50 1701

原创 分分钟带你读懂-ButterKnife-的源码

}});target.footer = Utils.findRequiredViewAsType(source, R.id.footer, “field ‘footer’”, TextView.class);target.headerViews = Utils.listOf(Utils.findRequiredView(source, R.id.title, “field ‘headerViews’”),Utils.findRequiredView(source, R.id.subtitle, “

2022-04-14 22:10:08 320

原创 关于Android开发你必须要懂的APK瘦身知识

}除了 minifyEnabled 属性外,还有用于定义 ProGuard 规则的 proguardFiles 属性:getDefaultProguardFile(‘proguard-android.txt’) 方法可从 An Android开源项目:ali1024.coding.net/public/P7/Android/git droid SDK tools/proguard/ 文件夹获取默认的 ProGuard 设置。提示:要想做进一步的代码压缩,请尝试使用位于同一位置的 proguard-

2022-04-14 22:08:37 431

原创 全网都说程序员是吃青春饭的,那等大家都年纪大了该怎么办?

所以,对于有Android开发经验的同学,更多应该想想怎么往深探索,而不是一味想着换方向,不管换到哪个方向,都会面对从初级到高级到资深再到专家的时间点。正确的职业规划应该是金字塔形,核心竞争力一定要扎实!至于那些已经选择转行的人,其实大多数还是没起来,毕竟转行后也是从0开始,想精进到专家并不是一朝一夕的事。不管在任何行业,任何岗位,初级技术人才总是供大于求,都是不好找工作的,Android开发只不过是其中之一同样,不管任何行业、岗位,技术过硬的也都是非常吃香的!说到底,是Android凉了吗?其.

2022-04-14 22:06:50 312

原创 作为一个开发者,如何更好的学习鸿蒙?

朱老师表示自己的课程为南向,也就是所谓的底层课程,如何在课程中用根技术的思维去做根课程,让课程去培养学习者们的一些根能力。比如如何学会自己学习,如何去做一些编译器相关的工作,如何去学习操作系统的底层以及组件相关的工作,将会是一个发展方向,同时鸿蒙作为第一个国产的操作系统,肯定会需要这样相关的人才。鸿蒙朱老师表示,这肯定不是最后一个国产操作系统,因为操作系统的分区是非常明显的。比如服务器肯定不适合用鸿蒙在上面运行,我们需要其他的操作系统的来对服务器进行支持,而制作这些操作系统就需要大量的开发人员。所以

2022-04-14 22:05:10 1023

原创 从AIDL来看Binder的通信原理(基于Andorid8

通过 startService()和 bindService()两种方式开启,在framwork框架层中没有发现流程中使用add_service方法(甚至都没出现ServiceManager)。↑ 这就看出无论自定义Service最后在不在ServiceManager中,Android本身是不希望我们通过ServiceManager的途径去获取使用自定义Service的。上述第二条的结论,原因是什么?我不是很清楚,但是基于结论来看:只要一个进程持有另一进程的BinderProxy类,那我还去找 Ser

2022-04-14 22:02:52 323

原创 了解 Gradle 和 buildType Task

这里的classPath跟其他的方法不一样,找不到这个方法,这其实是Grovy的一个机制,叫methodMissing,就是在方法调用的时候如果找不到方法,那么会去调用methodMissing()这个方法,最终在这个方法内处理逻辑。关于methodMissing这边不多做介绍,感兴趣的可以去了解下。[](()关于 buildTypesbuildType Android开源项目:ali1024.coding.net/public/P7/Android/git s默认有两个方法debug和releas

2022-04-14 22:01:06 256

原创 为什么道理懂那么多,你依然是个弱鸡

当然,这篇文章不会这么无聊得跟大家讨论什么是弱鸡,还是想从思维层面探讨下为什么别人会变成高手,而你可能工作几年后依然是个弱鸡。这里没有特指,也没有嘲讽,更多的是自我反思过后的一些体会,只求写一篇爽文,记录下近期来的一些想法,再过一段时间回来看看,有哪些想法其实还可以再升华。一些思考有时候埋头苦干真的可能只 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 是苦干以前我也是以为只要专心做事就够了,每天上班下班把事情搞定,遇到问题自己埋头解决,加班加点的,看起

2022-04-14 21:59:10 75

原创 为什么Flutter是跨平台开发的终极之选

跨平台开发是当下最受欢迎、应用最广泛的框架之一。能实现跨平台开发的框架也五花八门,让人眼花缭乱。最流行的跨平台框架有 Xamarin、PhoneGap、Ionic、Titanium、Monaca、Sencha、jQuery Mobile、React native、Flutter 等等。但这些工 Android开源项目:ali1024.coding.net/public/P7/Android/git 具的表现也是高低有别,各有千秋。在这些流行的框架中,有很多也已经消失在了历史的长河中被人渐渐遗忘了。但

2022-04-14 21:56:49 332

原创 三年经验Android开发面经总结

intent.setClass(MainActivity.this, MainActivity2.class);intent.addFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);Flags有很多,比如:Intent.FLAG_ACTIVITY_NEW_TASK 相当于singleTaskIntent. FLAG_ACTIVITY_CLEAR_TOP 相当于singleTopContext相关问题Activity和Ser

2022-04-14 21:54:33 371

原创 一起看 I_O _ Android 更新一览

[Android 12](() 的第一个 Beta 版现已发布,包含了很多炫酷的更新。包括全新的用户安全功能,如改进的蓝牙和近似位置权限;强化的性能表现,如 Android开源项目:ali1024.coding.net/public/P7/Android/git 加急作业 (expedited jobs) 和启动动画;以及通过全新设计的 widget 和过度滚动拉伸效果带来令人愉悦的体验,这是 Android 有史以来最大的设计更新之一。欢迎大家了解更多 Android 12 Beta 1 的 [详细信

2022-04-14 21:52:22 102

原创 Android开发5年,大专学历,Android400道面试题通关宝典助你进大厂

前言在做android项目开发时,大家都知道如果程序出错了,会弹出来一个强制退出的弹 出框,这个本身没什么问题,但是这个UI实在是太丑了,别说用户接受不了,就连 我们自己本身可能都接受不了。虽然我们在发布程序时总会经过仔细的测试,但是 难免会碰到预料不到的错误。接下来给大家分享一下我面试阿里的面试真题吧,希望对准备找工作的朋友有所帮助!(这些题目的相关答案大都可以在文末的资料中找到)阿里一面:1.apk启动流程2.你刚讲到了handler,那你说一下你对handler的理解,怎么用java实现一个

2022-04-12 16:15:25 479

原创 Android开发-软件版本升级与黑暗模式的适配【Android 10

前言最近发现大家都喜欢看面试相关的文章,我也跟一波风,总结了一下我面试中所遇到的问题总结,分享一下面试中被问的最多的一些问题。希望对正在找工作的朋友提供一些帮助。好了话不多说,进入正题。<TextViewandroid:id=“@+id/tv_time”android:layout_width=“100dp”android:layout_height=“15dp”android:layout_marginEnd=“10dp”android:layout_marginBottom=“

2022-04-12 16:13:49 431

原创 Android开发 申请Mob的SMSSDK的短信验证码功能中获取MD5签名(更新中)

前言最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧。我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就把我看过的和我面试中的真题,及答案都整理好,整理了《互联网大厂面试题》并分类 72份 PDF,累计 3170页!我在持续更新中,涵盖大厂算法会更多!第五步:项目下找到apk文件修改后缀为rar并解压点击“META-INF”**文件名:**CERT.RSA**打开当前目录下的cmd,

2022-04-12 16:12:12 249

原创 Android应用被后台杀死后如何重新走闪屏逻辑,android播放音频

开头互联网时代的到来,让我们获取知识变得更加简单,理论上讲只要你想学,便会有不尽的知识等你,只要方法得当,够努力,任何人都可以都有可能成为大牛。自己在努力的基础上,还学习了一些高效的学习方法,让我在学习的过程中更加高效,更迅速的掌握,以下是我学习Android的一些套路。}知道恢复流程之后,如何处理呢?其实很简单,直接吊起闪屏页就可以了,不过这里有一点要注意的是,在启动闪屏页面的时候,必须要设置其IntentFlag:Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG

2022-04-12 16:10:36 150

原创 Android常用方法,帮你解决90%的问题

开头作为一个40的人,能有面试机会是格外的珍惜,也分外的诚恳。没什么豪言壮语,雄心大志。没有狼性,社会把中年人打磨成了听话的舔狗。感谢马爸爸旗下公司,给了我为数不多机会中一个,而且还是个相当好的位置,可惜各种原因未能继续。最终机缘巧合下有了现在的工作,收入相对以前持平,但足够持久到十几二十年后。ArrayAdapter < CharSequence > adapter = ArrayAdapter.createFromResource(this , R.array.attr, andr

2022-04-12 16:08:59 241

原创 Android图片处理(Matrix,ColorMatrix,深入讲解Android

前言马上快到金三银四都春招阶段了,在这本就是跳槽、找工作的年后黄金时间,大多数求职者都早早做好年后求职的准备,其中不乏有年前早早辞了工作准备年后跳槽的有经验的职场老人们,也有一批即将毕业的应届毕业生的职场新人们。但是受此次“新冠肺炎”疫情影响之后,“金三银四”逐渐演变成千军万马过独木桥,一边是摩拳擦掌有经验的职场老人们,而另一边则是即将毕业跃跃欲试的新鲜血液,只会让求职人才们越积越多,面对这样岗位少求职者多的情况下,竞争力可想而知,再加上企业的招聘计划调整,侧面也是加剧了求职的难度。25 

2022-04-12 16:07:23 526

原创 Android从零开始搭建MVVM架构(4,android面试基础题记不住

前言九月裸辞从长沙跑到上海,跑了一个月的面试,本月中旬终于拿到了爱奇艺的高级工程师offer。做Android开发整4年有余,但是这一年才是最充实的,我花一年时间努力,送给了自己一个完美的蜕变!寒冬裁员潮给我的危机感我普通本科毕业,在长沙待了四年,其中只换过两家公司。去年这个时候,公司业绩不好要裁人。主管平时跟我关系比较好,说我本来也在被裁的考率名额中的,他帮我跟领导说了一堆好话才没事。我请主管吃了一顿火锅。但是我无法像以前那么心安理得混日子了。因为我去年首付买了房。原本想着每个月稳定税后拿个8k

2022-04-12 16:04:09 646

原创 android中使用百度定位sdk实时的计算移动距离,面试阿里P7岗

前言回顾一下自己这段时间的经历,因公司突然通知裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷。公司开始第二波裁员,我决定主动拿赔偿走人。后续的面试过程我做了一些准备,基本都能走到hr面,后面我也顺利地拿到了offer,我给大家分享下我的求职体会,希望能给大家一些参考。import java.util.concurrent.Executors;import android.app.Service;import android

2022-04-12 16:02:33 847

原创 android下拉刷新—,Android 400道面试题通关宝典助你进大厂

前言:本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖:Java 相关、Android 基础、Android Framework、三方源码、算法与数据结构、等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码。dependencies {implementation “androidx.swiperefreshlayout:swiperefreshlayout:1.0.0”}第二步:编写布局文件<?xml version="1.0" encoding="utf-8"?

2022-04-12 16:00:56 421

原创 Flutter 中 ListView 的使用,Android性能优化之启动优化实战篇

前言金九银十跳槽季接近尾声了,可是今年仍然不太好找工作,相信大家肯定急需一套Android面试宝典,下面就分享给大家我珍藏已久的Android高阶面试宝典,供大家学习 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UmWROJg5-1649664355205)(https://user-gold-cdn.xitu.io/2018/7/26/164d54f7d8bfc994?imageView2/0/w/1280/h/960/ignore-error/1)]JSON 数

2022-04-11 16:06:14 241

原创 filter、interceptor、aspect不知如何选择,2022最新阿里Android高级面试题总结

序言本文主要介绍校招,上半年疫情原因真正面试的时间和机会也不多,尽管我已经面试超过1000位应届生,批改过超过几百份份笔试的试卷,因为通过率较低,我也被同事吐槽许多次让我“手下留情”。今天我就想聊一聊,我自己的面试标准。这不是一篇什么攻略文,旨在抛砖引玉,大家一起探讨如何面试更有效率。需要写在前面的是,“平等“和”高效”一直都是互斥的。信息从一个人传递到另一个人那里,由于表达能力和接收能力的限制,必然产生信息熵,所以花一天的时间好好了解一个人的技术实力和学习能力,自然要比一场半小时的面试要更加的全面。但

2022-04-11 16:04:37 74

原创 C语言(七),【面试总结】

大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助。最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了…所以啊,不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流~//读的文件 b字符表示操作二进制文件binaryFILE *read_fp = fopen(..

2022-04-11 16:03:01 100

原创 apache+tomcat +负载平衡,Android高级工程师每日面试题精选

前言刚从阿里面试回来,想和大家分享一些我的面试经验,以及面试题目。这篇文章将会更加聚焦在面试前需要看哪些资料,一些面试技巧以及一些这次的面试考题。1、负载平衡:每台服务器都是独立的,只是对请求的负载进行平衡,而不对状态(SESSION)进行复制。状态复制(集群):先进行负载平衡,再在各服务器间复制应用状态。2、apache负载均衡的原理:mod_jk负载平衡原理:使用mod_jk默认的以轮循方式进行平衡负载,假设有四个服务器节点,有10个请求,则第一个节点会得到1,5,9请求;第二个节点会

2022-04-11 16:01:24 115

原创 Android高级架构师:Android平台HTTPS抓包解决方案及问题分析

第二个问题,MITM Client伪装成Client。由于服务器并不会校验Client(绝大部分情况),所以这个问题一般不会存在。比如Server一般不会关心Client到底是Chrome浏览器还是IE浏览器,是Android App还是iOS App。当然,Server也是可以校验Client的,这个后面分析。安装CA证书抓包应用内置的CA证书要洗白,必须安装到系统中。而Android系统将CA证书又分为两种:用户CA证书和系统CA证书。顾明思议,用户CA证书是由用户自行安装的,系统CA证书是由系统内

2022-04-11 15:59:48 659

原创 android高级UI布局层次结构及布局加载流程源码解析

[](()2、mWindow.setContentView(layoutResID)通过上面我们知道最终调用的是PhoneWindow的setContentView,方法如下所示,主要干了两件事情,注释1用于生成DecorView和mContentParent;注释2处用于将layoutResID(也就是我们实现的布局id)设置到mContentParent中去;public void setContentView(int layoutResID) {if (mContentParent == nul

2022-04-11 15:58:11 113

原创 Android面试题精选:关于-Handler-面试官问了我什么,小程序开发教程

开头学习能力,尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习XX该看什么书,如何快速学习XXX,学习XXX有什么代码推荐”之类的问题,他们想学什么很快就能自己找到相关资料。这个行业发展太快,技术淘汰的速度也很快,3年不学新东西就可能落伍了。动手能力,都是看书看资料,当别人还在纠结看什么书,还在纠结书里的字句是什么意思的时候,有些人的几百上千行代码都已经能运行了。耐心和毅力,做程序员兴趣固然重要,写自己喜欢的代码那是相当愉快的事情,但是程序开发中无论如何还有大量乏味无趣的事情,要能坚持,咬

2022-04-11 15:56:35 60

原创 Android跨进程通信,Android面试总结

一、概述随着业务的发展,工程的逐渐增大与开发人员增多,很多工程都走向了模块化、组件化、插件化道路,来方便大家的合作开发与降低业务之间的耦合度。现在就和大家谈谈模块化的交互问题,首先看下模块化的几个优势。模块化的优势结构清晰:业务独立,代码实现分离,不会搅在一起。便于协作:每个开发同学只要自己负责的模块,没有太多的耦合。便于维护:各模块管理自己的代码、布局、资源,主工程可以方便添加与移除。特点:高内聚、低耦合。Bundle文件共享ContentProviderSocket

2022-04-11 15:54:58 174

原创 Android设计模式之迪米特原则,凭借这份《数据结构与算法》核心文档

前言闲来无事在家偶然翻到了之前整理的文档和面试要做到准备路线,虽然内容有点多,但是技多不压身,多多益善本部分内容是关于Android进阶的一些知识总结,涉及到的知识点比较杂,不过都 是面试中几乎常问的知识点,也是加分的点。 关于这部分内容,可能需要有一些具体的项目实践。在面试的过程中,结合具体自身实践经历,才能更加深入透彻的描绘出来public Room(double area, double price) {this.area = area;this.price = price;}publi

2022-04-11 15:53:21 501

原创 Android 快别用Toast了,来试试Snackbar

=======Toast提示默认显示在界面底部,使用Toast.setGravity()将提示显示在中间,如下:Toast toast = Toast.makeText(this, str, Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();运行在在Android 12上无法显示,查看Logcat提示如下:Toast: se

2022-04-10 23:48:38 1822

空空如也

空空如也

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

TA关注的人

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