自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 3D模型 在Android Studio 中的应用

[](()2.1 请求权限在清单文件中,我们需要为应用获取互联网权限以便通过URL加载3D模型;并获取相机许可来打开3D模型。同时这里我们要用Google Play的AR服务来帮助我们使用3D模型[](()2.2 构建配置添加UX库和assets库以动态添加3D模型implementati Android开源项目《ali1024.coding.net/public/P7/Android/git》 on ‘com.google.ar.sceneform.ux:sceneform-ux:1..

2022-04-18 13:16:47 2983

原创 35岁难找工作,40岁没人要:年长的程序员都去哪里了

**360°全方面性能调优:**设计思想与代码质量优化+程序性能优化+开发效率优化**解读开源框架设计思想:**热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 *NDK模块开发:**NDK基础知识体系+底层图片处理+音视频开发**微信小程序:**小程序介绍+UI开发+API操作+微信..

2022-04-18 13:14:35 220

原创 Android组件内核之间组件间通信方案(四)下篇

interface EditProfileContract {interface view {fun setProgress(show: Boolean)fun showEmptyFirstNameError()fun showEmptyLastNameError( Android开源项目《ali1024.coding.net/public/P7/Android/git》 )}interface presenter {fun saveProfile(firstName: String, las

2022-04-17 12:46:56 304

原创 Android第三方开发包值高德地图SDK使用介绍

(1)配置Project的build.gradle:添加jcenter的仓库地址文件位置:代码:allprojects {repositories {jcenter() // 或者 mavenCentral()}}(2)配置主工程文件的build.gradle文件文件位置:代码:android {defaultConfig {ndk {//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)abiFilters “armeabi”, “armeabi-v7a

2022-04-17 12:44:27 1493

原创 Android开发之图片压缩处理

这个就是我们平时写自定义view的时候,要写回调方法,是一样的道理,他这里就是压缩方法的回调[](()第五步:*launch()*点击去看到源码为/**begin compress image with asynchronous*/public void launch() {build().launch(context);}这里,我们看到他先调用了build(),我们前面讲了,他这个方法就是赋值,然后调用了launch(context)方法,我们点进去看:/**start asy

2022-04-17 12:42:32 193

原创 Android修炼系列(八)

@param isTest 添加参数描述,不需要刻意与其他param 参数对齐*/public void test(boolean isTest){}@link 常见形式见下: @code 用来标记一小段等宽字体,也可以用来标记某个类或方法,但不会生成超链接。常与@link配合,首次通过@link生成超链接,之后通过@code 呈现等宽字体。/**第一句话是这个方法的简短摘要。我们可以关联{@link Test}类,随后通过{@code Test}类怎样怎样也.

2022-04-17 12:39:25 1773

原创 Android事件分发机制源码解析

}private TouchTarget addTouchTarget(View child, int pointerIdBits) {TouchTarget target = TouchTarget.obtain(child, pointerIdBits);target.next = mFirstTouchTarget;mFirstTouchTarget = target;return target;}private boolean dispatchTransformedTouchEvent

2022-04-17 12:37:47 1472

原创 Android-APK瘦身实践:二次瘦身如何再减少大小?

[更多下载](()最终,apk减小了188k。4. 大图缩小如果经过上面的步骤,依然存在大图的话,说明确实图有点大了,可能真的有点大了!所以,要考虑的问题是,是否有必要保证如此的大小?能否缩小?如果这方面能减小的话,apk瘦身的效果必然又会上一个档次。5. 覆盖aar里的一些默认的大图一些aar库里面包含根本就没有用的图。最典型的是support-v4兼容库中包含一些“可能”用到的图片,实际上在你的app中不会用到。我没有把所有图都替换掉,只是把几张大一点点的图(选中的那些图)用1×1的图片

2022-04-15 16:56:46 474

原创 Android---使用-ContentProvider-无侵入获取-Context

Application mInitialApplication;public Application getApplication() {return mInitialApplication;}private void handle 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 BindApplication(AppBindData data) {// …Application app;// data.info 为 LoadedApk.javaap

2022-04-15 16:55:15 322

原创 Android 项目总结(一):弧形ViewPager 和弧形HeaderView

public class ArcHeaderView extends View {private Paint mPaint;private PointF mStartPoint, mEndPoint, mControlPoint;private int mWidth;private int mHeight;private Path mPath = new Path();private int mArcHeight = 100;// 圆弧高度private int mStartColor;pr

2022-04-15 16:53:28 381

原创 Android 计时器Chronometer 使用及源码分析

//开始计时chronometer.start();break;case R.id.btn_stop://结束计时chronometer.stop();//文字显示ch_format.setText(“00:00”);break;case R.id.btn_reset://重置基准时间chronometer.setBase(SystemClock.elapsedRealtime());break;case R.id.btn_format_1:ch_f

2022-04-15 16:51:46 847

原创 Android 架构分享— 那些年我们犯过的错

我的意思是,你可以以这样一种方式组织你的代码,那个和交互设计师对接的程序员只需要打理和交互相关的代码。因此,所有交互被分离到那些负责交互的 classes / modules / components / whatever (组件)中,当处理 app 的交互部分时,只需要打理那些组件。译者注:如果暂时不能理解利益相关者,没关系的,看完本系列第三部分你就明白了II.支持关注点分离我刚刚所说的就是一个关注点分离的例子。我们支持这种特定的方法,因为它能很好地表达团队组织和项目阶段的配合,一般来说,你的架

2022-04-15 16:49:27 680

原创 Android 架构之长连接技术

上文中我们提到了HttpDNS,虽然它比系统DNS更优,但终归还是要做DNS操作。而长连接都是IP直接连接,因此没有DNS相关的开销和耗时。3. 如果有大量网络请求,可以明显减少网络延时,节省带宽对于大型App而言,存在繁多密集的网络请求,这中间就会存在非常多次的Http断开和重新连接,浪费了很多时间和带宽。而通过长连接通道的话,则没有这部分耗时,直接传输二进制数据即可,节省了每次连接里Header之类的带宽开销。4. 服务端主动Push数据到客户端对于上面提到的微信消息接收等场景,如果需要客户端主

2022-04-15 16:47:42 3113

原创 android 快速开发(一)抽象类的使用

abstract [修饰符](() 可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员,抽象方法是没有方法体的方法。abstract 不可以和[static](()、virtual、[final](()、native一起使用声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的抽象成员(抽象方法),那么这个类就是一个[抽象类]((),抽象类的对象就不能被实例化,通常用于强制继承类必须实现某一成员.抽象类是必须要派生子类的。并且,如果子类没有实现抽象基类的所有方

2022-04-15 16:45:45 1197

原创 Android 开发艺术探索笔记(16)

有些动画会无限循环,所以要在Activity退出时及时停止。兼容性问题View动画问题View动画是对动画做影像动画,并没真正改变View的状态不要使用px动画元素的交互属性动画的单击事件触发在移动后的位置,View则在之前的位置。硬件加速使用动画的过程中尽量使用硬件加速,能保证动画的平滑和流畅性。理解Window和WindowManagerWindow是一个窗口,Window的具体实现位于WindowManagerService中,WindowManage

2022-04-15 16:43:24 148

原创 Android 开发小总结

3、目录为 /storage/emulated/0/Android/data/packagename/filesgetExternalFilesDir(null)4、内部存储(手机内部存储)目录为 /datagetDataDir()5、应用缓存目录 /data/data/packagename/cachegetCacheDir()6、应用文件目录 /data/data/packagename/files《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目.

2022-04-15 16:41:08 392

原创 Android进阶:手把手教你实现高仿微信底部导航栏动画

super(context, attrs);// 加载布局inflate(context, R.layout.tab_layout, this);TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TabView);for (int i = 0; i < a.getIndexCount(); i++) {int attr = a.getIndex(i);switch (attr) {case R.styleab

2022-04-14 21:03:05 546

原创 Android还有必要深耕吗?现在的前景是怎样的?

贴近实战之问题优化编程优化[](()高级音视频C/C++基础交叉编译NDK进阶面试增量更新与Gif渲染H264视频编码MediaCodec视频编辑之剪影实战FFmpeg万能播放器直播推流图形渲染与识别Webrtc音视频[](()架构师必备架构筑基技能手淘组架构设计开源架构手写实现一线大厂架构核心进阶 Android开源项目:ali1024.coding.net/public/P7/An..

2022-04-14 21:01:34 72

原创 Android性能优化 _ 大图做帧动画卡?优化帧动画之 SurfaceView滑动窗口式帧复用

private Android开源项目:ali1024.coding.net/public/P7/Android/git void startDrawThread() {handlerThread = new HandlerThread(“SurfaceViewThread”);handlerThread.start();handler = new Handler(handlerThread.getLooper());handler.post(new DrawRunnable());}pr

2022-04-14 20:56:55 308

原创 Android开源的精美日历控件,热插拔设计的万能自定义UI

<attr name=“selected_text_color” forma 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 t=“color” /> XML用法如果需要在日历控件下方使用其它控件,使用CalendarLayout控件即可,calendar_co Android开源项目:ali1024.coding.net/public/P7/Android/git ntent_...

2022-04-14 20:55:25 371

原创 Android开发简易版强制学习程序

Button Time1_btn = (Button)findViewById(R.id.time1_btn);Time1_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(MainActivity.this, time1Activity.class);startActivity(intent);}});M

2022-04-14 20:53:54 279

原创 Android开发把-LiveData-用于事件传递那些坑

2.3、LiveData 就不是为传递事件准备的从上面两点也可以看出,LiveData (或者说它的观察者) 在观察者激活之前并不关心中间经历过多少次数据变更,它只会在某个观察者激活时,传递给他最新的值,中间的值都不会起作用。当然 LiveData 的设计也不是为了传递事件的,它是为了反应 View 当前状态的,View 层只需要根据当前 LiveData 的值去渲染数据就行,非激活状态时 View 都不可见,就算更新了也没意义。我最开始也是觉得 LiveData 用到了观察者模式,而且可以进 《A

2022-04-14 20:52:24 784

原创 Android开发5年,大专学历,幸运拿到阿里offer

我工作快5年,最近很幸运的拿到了阿里offer,作为一个大专学历的我已经很知足了。在这次面试之前,我根据阿里招聘的岗位要求投了很多其它公司类似的岗位进行面试积攒经验,像华捷艾米、信雅达、小米、美团等,有些被虐的很惨,也拿到了几个offer,犹豫了一下还是决定继续冲击阿里!可以看到阿里学历一般都要求本科、计算机相关专业;对底层 Android开源项目:ali1024.coding.net/public/P7/Android/git 原理的要求较高我自己总结了一下,能拿到这次offer原因主要有两

2022-04-14 20:50:53 96

原创 android各种提示Dialog 弹出框

activity.finish();}return false;}});}return dialog;}public static Dialog getOneButtonDialog(final Activity activity, String content,boolean dismissTouchOutside, boolean cancelable,DialogInterface.OnClickListener confirmOnClickListener) {Dialog d

2022-04-14 20:47:46 1181

原创 Android凉了也要看的面试题,2020年5月美团Android面试真题(三面

7.concurrentHashmap原理,原子类。8.volatile原理。9.Binder机制。10.View的绘制流程,事件传递机制,Handler异步消息机制。11.Interger中的128(-128~127),这里考的是常量池的概念,这个没回答上来。12.线程池的相关知识。13.Handler机制,HandlerThread实现等等。14.LRUCache算法是怎样实现的。就 Android开源项目:ali1024.coding.net/public/P7/Android/gi

2022-04-14 20:46:16 392

原创 Android 去掉运营商STK对话框提示,一起看看这些大厂面试真题查漏补缺吧

前言网上关于启动优化的文章多不胜数,内容千篇一律,大都是列举一些耗时操作,采用异步加载、懒加载等。而在面试过程中,关于启动优化的问题,如果只是很表面地回答耗时操作应该放在子线程,显然太过于普通,无法跟竞争者拉开差距。如何让面试官知道你的“内功深厚”,那肯定是要往原理层面去回答。本文重点还是关注原理,冷启动优化这个问题能延伸到很多原理层面的知识点,本文比较有意思的地方是通过反编译今日头条App,研究大厂的启动优化方案。resId = R.string.app_name;}} else if (s.

2022-04-12 15:39:23 324

原创 Android 使用SVG动画,网易资深Android架构师

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

2022-04-12 15:36:09 158

原创 Android USB串口通信实现 以及绕过USB弹框验证,50w字+的Android技术类校招面试题汇总

前言经常会有人问:“现在学习Android开发还有前景?”我的看法是现在只是市场趋于平稳了,对开发人员的要求越来越好了,这并不代表没有前景了。移动开发不等于App开发,所有新的技术浪潮其实都可以融入到移动开发的体系里,比如IOT、音视频、边缘计算、VR/AR,我们要做的,只是打好基础,随时准备战斗。其次,从心态上,我觉得我们千万不要把时间浪费在纠结问题上,而是应该放在解决问题上。“王者荣耀”“吃鸡”并不能解决我们的焦虑,拥抱变化,才能拥有未来,让我们共勉。移动端的招聘中高端的职位还是很多的,看了下拉勾

2022-04-12 15:32:55 651

原创 Android RxJava: 这是一份全面的 操作符 使用汇总 ,安卓开发基础面试题

近两年“程序员职业发展”话题,受到越来越多关注,做技术还是转管理?如何保持竞争力?是否要转换新的技术栈?每个工作三五年的程序员,都正面临着类似的焦虑。工作三五年,不能像刚入职场凭着一股子冲劲和能吃苦耐劳的精神赢得升职加薪,而转型管理,是很多技术人员的梦想。那么,技术骨干朝着管理人才前进的过程中,应该如何培养其管理能力呢?compile ‘io.reactivex.rxjava2:rxjava:2.0.7’// 注:RxJava2 与 RxJava1 不能共存,即依赖不能同时存在}3.1 创建.

2022-04-12 15:31:19 259

原创 Android PieChart(饼形图),你的技术真的到天花板了吗

前言现在几乎每个it公司都在开发移动产品,我最早知道Android还是在13年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注。到2014年毕业的时候,Android已经发展到了4.4 版本,百度了一下Android,知道了(应用)开发采用的是Java语言。我当时学过 C,C++,对java有些了解,从成都辗转来到北京,找到的工作正是开发一款Android应用(生活服务类)。这时我有了一个HTC的安卓最新版手 机。现在做Android移动开

2022-04-12 15:29:42 2091

原创 Android Canvas 方法总结,Android面试真题解析火爆全网

背景在深度使用 Flutter 开发过程中,我们遇到了业务代码耦合严重,代码可维护性糟糕,如入泥泞。我们需要一个统一的应用框架来摆脱当下的开发困境,而这也是 Flutter 领域空缺的一块处女地。Fish Redux 是为解决上面问题上层应用框架,它是一个基于 Redux 数据管理的组装式 flutter 应用框架, 特别适用于构建中大型的复杂应用。它的最大特点是配置式组装, 一方面将一个大的页面,对视图和数据层层拆解为互相独立的 Component|Adapter,上层负责组装,下层负责实现,另一方

2022-04-12 15:28:05 286

原创 Android 11 Settings源码入门,我就不信你还听不明白了

前言曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。在工作初期,工作主要是按照业务需求实现App页面的功能,按照设计师的设计稿实现页面的效果。在实现的过程中,总是会被提如下的需求:这个字能不能大点或者醒目点儿?颜感觉颜色和设计稿有差别,能不能再调调?怎么老是崩溃啊,行不行啊?…所以,工作过一年后你会发现,自己的工作重点就是**将找各种各样的组件、框架,拖拖拽拽,改改样式。**在极端

2022-04-12 15:26:29 1695

原创 Android技能树 — 网络小结(6)之 OkHttp超超超超超超超详细解析

安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 11.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。但是,到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发

2022-04-11 15:30:12 719

原创 Android手机验证码倒计时控件,如何系统全面性学习Android语言

前言近期被两则消息刷屏,【字节跳动持续大规模招聘,全年校招超过1万人】【腾讯有史以来最大规模的校招启动】当然Android岗位也包含在内,因此Android还是有很多机会的。结合往期面试的同学(主要是校招)经验,我归纳整理了全套Android面试题解析。当然,这些面试题答案解析也整理到了PDF手册里,文末领取。我整理面试题如下,供大家参考,知道比没知道的好。可以帮大家查漏不缺。以下是(腾讯,百度,华为,搜狗和滴滴 这些厂的面试题)private void startSend() {if (mSen

2022-04-11 15:28:35 244

原创 Android开发5年,面试问到底层实现原理,被怼得,分享面经

概述想了很久怎么样可以让文章的标题不那么悲观,但是各种文案都在我脑海里面不断的被否定,要么是不那么抓眼球,要么是立意不匹配。最后想了想,这个标题是真的符合我最近的感悟。希望看过文章,能有同感的朋友也能多思考一下。最近因为疫情的关系,相信很多国内的小伙伴都逐渐开始了解到在家上班的体验。在美国基本上work from home在IT公司里面算是比较常见的现象了。一般大厂每个周都会有一天被划为No Meeting Day,说只是不开会日,但通常都会被大家当成在家办公日。不开会嘛,那我在家和在办公室也没区别不

2022-04-11 15:25:21 88

原创 android开发 加载so库的解析和出现的各种错误分析,2022最新阿里Android面试流程

在面试程序员岗位时,我们往往需要经历一个编程面试过程,雇主会借此考验面试者的技术实力。然而,这些技术问题有时候却和我们的实际工作并无太大关系,也由此可能给我们的编程面试准备阶段带来很大的压力。我也因此写出这篇文章,相信能给即将进入职场的程序员带来帮助。=======================事实上并不是:这不只影响到函数库的性能和兼容性。x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。64位设备(arm64-v8a, x86_64, mips64).

2022-04-11 15:22:08 1225

原创 Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名

您好,欢迎关注我的专栏,本篇文章是关于 Flutter 的系列文,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上一篇专栏,我带大家用Flutter实现了一个完整的可自定义配置的 PageView 指示器。这篇专栏,我会教大家在Flutter中如何实现界面跳转在Android中,我们会使用Intent来进行界面间的跳转,用startActivityForResult来处理.

2022-04-11 15:20:31 1128

原创 Android屏幕适配很难嘛?其实也就那么回事,做了6年的Android

开头1、一定要把基本的数据结构,经典的算法,Unix编程,程序编译链接及计算机原理等基础知识扎牢,这些会长远影响你的职业发展。2、 推荐从C语言入门,不单是因为很多操作系统、网络协议栈开源代码由C/C++实现,更多是因为C语言自身的特性:作为高级语言用户无需关注底层细节,同时能直观的看到数据流向。而且C相对语法规则较为简单,可以短时间的上手应用。最重要的是,遵循C/C++、python的学习方式,比直接学习python更能清晰的知道自己程序的内存等性能状况。}});}//计算宽为360dp 同理

2022-04-11 15:18:55 764

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

前言大厂面试一直都是程序员圈内摸鱼时间津津乐道的话题,进大厂想必也是无数程序员的梦想。关于“原理”的问题,几乎是现如今Android开发岗必问的问题,尤其在大厂面试中更为突出。有过大厂面试经验的小伙伴应该知道:大厂的面试官一般会基于你的简历,从一个非常基础的问题开始问起,然后一步一步给你挖坑,最终必定会问到原理的问题上去。所以,想进大厂,原理这关,你必须得过!前几天和我一个在阿里的朋友闲谈的时候,特意问了这位10年Android开发的“骨灰级”面试官,阿里巴巴面试都问哪些原理问题。特此整理出这篇文章

2022-04-11 15:17:18 51

原创 Android WebView常见问题

[](()1.load网址//找到控件web_view = (WebView) findViewById(R.id.web_view);//加载网页web_view.loadUrl(weburl);如果你是真机调试,且手机系统比较高的话,应该会报错:网页无法加载,应为:net :ERR_CLEARTEXT_NOT_PERMITTED解决方式于第二个某块[](()2.设置一些属性web_view = (WebView) findViewById(R.id.web_view);WebSet

2022-04-10 23:43:24 280

空空如也

空空如也

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

TA关注的人

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