自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android进阶篇04、MVC、MVP、MVVM架构简析

一般的方式是定义视图IView接口,在接口中定义改变视图需要的方法,让activity实现接口,然后在activity中去实现方法具体的逻辑;mvc模式抽离了model层,让activity减轻了一点负担,但是仍然很复杂,因为需要在activity中进行逻辑控制,并且数据和视图的交互也需要放在activity中;本例中我们的汽车可以载鸡鸭鱼,但是鸡鸭鱼需要通过人来携带,因此我们并没有为鸡鸭鱼单独抽象出接口,而是将其放入人的接口中,汽车也就尽可能少的与其他实体发生作用;但是需要轿车的地方就不能传入汽车;

2024-05-27 03:11:39 374

原创 Android进阶必学retrofit源码解析

在invoke方法中,首先会通过Platform.get()方法判断出当前代码的执行环境,之后会先把Object和Java8的默认方法进行一个处理,也是在进行后续处理之前进行去噪。上面说了API中方法注解的解析,现在来看看方法参数注解的解析,这是通过调用parseParameterAnnotation方法生成ParameterHandler实例来实现的,代码比较多,这里挑选@Query来看看。// 为null的话,解析方法的注解和返回类型、参数的注解he参数类型,新建一个ServiceMethod。

2024-05-27 03:11:08 338

原创 Android组件化开发的意义何在?(1)

if (!//1.动态设置application或library}else{android {//2.library不存在applicationIdrelease {// 3.library状态下AndroidManifest.xml没有application信息,不设置启动activitymain{}else{依赖库的manifest.xml。

2024-05-27 02:55:24 304

原创 Android组件化入门:一步步搭建组件化架构

接着修改app下的build.gradle里设置内容将原来的和三方库等替换成对应config.gradle中定义的值。android {release {最后还要在项目目录下的build.gradle中添加一行:然后点击Sync Now同步。最后在进行下一步前,新建一个MyApplication,在设置name属性。

2024-05-27 02:54:54 426

原创 Android模拟面试,解锁大厂——从Activity创建到View呈现中间发生了什么?

/调用Activity.attach。//省略代码…//调用Activity.onCreate()方法。//调用Activity.onStart()方法。performLaunchActivity()主要做了以下几件事:创建Activity。创建Context。调用Activity.attach(),创建Window,关联WindowManager。调用Activity.onCreate()。调用Activity.onStart()。

2024-05-27 02:39:53 250

原创 android模拟器Genymotion的使用

选择对于的模拟器,单击“启动”启动。### Genymotion模拟器安装第三方应用在Genymotion模拟器中安装应用也是相当的简单,只需要将应用的Android包下载好,将xxx.apk文件拖到模拟器的界面上即可完成安装_* Genymotion-ARM-翻译用方法*_ 1,将下载好的Genymotion-ARM-Translation.zip拖到Genymotion模拟器界面,进行安装.2,安装好后,重启模拟器即可。默认情况下,在Genymotion模拟器启动的状态下,会导致Android。

2024-05-27 02:39:23 318

原创 Android开发,跳槽就能涨薪?

k的区别,AsyncTask用到哪个?AsyncTask是顺序执行么,for循环中执行200次new AsyncTask并execute,会有异常吗IntentService生命周期是怎样的,使用场合等。

2024-05-27 02:23:55 449

原创 android开发面试题,靠着这份190页的面试资料,送大厂面经一份!

分享一份NDK基础开发资料小编顺便准备了关于NDK—Linux的深入讲解的视频,如需要的话可以讲解的视频,如需要的话可以**分享内容包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

2024-05-27 02:23:25 311

原创 Android应用程序的debug属性

使用Eclipse运行这种方式打包时其 debug属性为 true , 使用Eclipse导出这种方式打包时其 debug属性为法false.因此在 AndroidMainifest.xml 中最好 不 设置 android:debuggable 属性置,而是由打包方式来决定其值。这是一种单元测试的方法,具体用到的类是android.permission.cts.DebuggableTest。在使用ant打包时,其值就取决于ant的打包参数是release还是debug.

2024-05-27 02:08:22 389

原创 Android应用开发之PNG、IconFont、SVG图标资源优化详解

扯了这么多,接下来我们举个例子吧,哈哈,好在强大的AS已经支持在drawable下右键新建Vector资源了,支持的还是满强大的,SVG或者MD的图片直接到我们需要的xml文件一步生成。到此AnimatedVectorDrawable的基本情况就OK了,没啥悬念的,重点依旧是pathData的定义,所以如果项目有需求还是要好好搞搞的,暂时木有需求,因为我们用的IconFont方案。这玩意超级简单,主要脑动力在美工妹妹,和咱程序员关系不是很大,所以直接用即可,不做Demo演示了,我们项目中也用了很多这玩意。

2024-05-27 02:07:51 475

原创 Android四大组件(四) Service

需求:既想让服务在后台长期运行,也想调服务里面的方法.(eg:网易云音乐,在后台能播放音乐,应该是用服务实现的,然后也能在后台切换上一曲下一曲,应该也能调用服务里面的方法). 这时候需要混合方式开启服务。服务的系统优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后台运行的服务.如果你希望服务可以一直保持运行的状态,而不会由于系统内存不足的原因导致被回收,就可以考虑使用前台进程.(1) 当点击按钮第一次开启服务,会依次执行服务的onCreate()方法->onBind()方法。

2024-05-27 00:33:45 352

原创 android各种提示Dialog 弹出框

else {if (!@Override});.create();if (!@Override});null);.create();

2024-05-27 00:33:14 422

原创 Android中自定义ViewGroup

在我们继承ViewGroup时会在除了构造函数之外提供这个方法,我们可以看到,在ViewGroup的源代码中方法是这样定义的,也就是父类没有提供方法的内容,需要我们自己实现。我们新建一个叫AndroidViewGroup的工程,Activity起名为MainActivity。在写一个继承于ViewGroup的类,名叫HelloViewGroup。这个方法是用来想View容器中添加组件用的。我们可以使用这个方法想这个ViewGroup中添加组件。注意:ViewGroup中的View是从0开始计数的。

2024-05-27 00:18:49 266

原创 android中的动画

这里写代码片public class MainActivity extends Activity {}

2024-05-27 00:18:17 388

原创 Android-Binder机制及AIDL使用,值得收藏!_android 广播 binder

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

2024-05-26 23:57:12 439

原创 Android 开发面试心得:BAT大厂Android面试题整理,面试8家大厂后终于拿到Offer!

RxJava的功能与原理实现RecycleView的使用,原理,RecycleView优化ANR的原因四大组件Service的开启方式Activity与Service通信的方式Activity之间的通信方式HashMap的实现,与HashSet的区别JVM内存模型,内存区域Java中同步使用的关键字,死锁MVP模式Java设计模式,观察者模式Activity与Fragment之间生命周期比较广播的使用场景网易volatilesynchronized与LockJava线程池。

2024-05-26 23:37:03 255

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

一般情况下的插值器是线性插值器,当时间流逝一半时,x的改变也是一半,所以是0.5,所以线性插值器实现的是匀速动画。比如我们给以一个button来加一个变宽的动画,button的getWidth能够得到width,但是setWidth却不能改变width,因为在button继承的TextView中的setWidth是设置最小宽度和最大宽度,所以满足了第一个条件没有满足第二个条件。TypeEvaluator的中文翻译为类型估值算法,也叫估值器,它的作用是根据当前属性改变的百分比来计算改变后的属性值。

2024-05-26 23:36:33 255

原创 android 中获取sha1值的详细说明

密钥库口令默认是android上面的sha1值直接拷贝出来就可以了。**方法二:**windows->preferences 然后选择 Android—>Builddebug版本这两种方法都可以获取到sha1。

2024-05-26 23:22:15 671

原创 android 中DrawerLayout实现抽屉

Toast.makeText(MainActivity.this, “我想打死你,***”,actionBar.setTitle(“菜单界面”);actionBar.setTitle(“主界面”);actionBar.setTitle(“主界面”);list.add(“想发火” + i);//标题栏的home可以点击。//打开或者关闭时的状态。//获取手机的菜单栏。

2024-05-26 23:21:45 402

原创 Android OpenCV(三十六):轮廓面积与周长

轮廓面积和轮廓周长都是轮廓的重要统计特征。轮廓面积是指每个轮廓中所有像素点围成区域的面积,单位为像素。轮廓周长是指每个轮廓中所有像素点围成区域的周长,单位同样为像素。通过分析轮廓面积和轮廓周长,我们可以区分物体的大小,识别物体的不同,同时还能分析出一些其他内容,例如,正方形区域的周长和面积是有固定关系的,圆形区域的周长和面积是有固定关系的。通过计算轮廓面积和周长,再结合这些固定关系,我们是可以得到一些结论的。结合上篇《轮廓发现与绘制》示例,计算各轮廓的面积和周长。周长:${length}”)

2024-05-26 23:06:47 358

原创 Android ONE store支付

也就是说,如过购买了管理型商品而未消耗,可作为永久性商品,如购买后立刻消耗商品,可作为消耗型商品,如超过一定期限消耗已购商品,可作为限期型商品。调用方法时,输入想要购买的应用内商品ID、商品名称、商品类别和开发者任意决定的launchPurchaseFlowAsync(不超过100byte),该值用于支付成功后确认数据的正确性和附加数据,并以参数传递的requestCode用于确认返回至onActivityResult的数据。在此过程中,SDK中与应用内支付服务连接,启动为购买的各种参数设定的操作。

2024-05-26 23:06:17 343

原创 Android BLE 蓝牙通信库

然后根据自定义的协议,解析对应的 BeaconItem 中的 bytes,首先创建一个 BeaconParser,传入对应的 BeaconItem,然后根据协议不断读取数据, 如果协议中某个字段占 1 个字节,则调用 readByte,若占用两个字节则调用 readShort,如果要取某个字节的某个 bit 则调用 getBit。// 获取第 1 字节的第 1bit。可以在广播中携带设备的自定义数据,用于设备识别,数据广播,事件通知等,这样手机端无需连接设备就可以获取设备推送的数据。

2024-05-26 22:51:24 275

原创 android bitmap compress(图片压缩)

/ --------------------------------尽可能得到ImageView的精确的宽高------------------------------------------------------------------// ------------------------------------尽可能得到ImageView的精确的宽高-------------------------------------------------------------

2024-05-26 22:50:54 401

原创 90%的开发者都不知道的UI本质原理和优化方式

UI优化主要包括布局优化以及view的绘制优化。先说下UI的优化到底是什么?有些时候我们打开某个软件,会出现卡顿的情况。这就是UI的问题。那么我们想一下,什么情况会导致卡顿呢?一般是如下几种情况:人为在UI线程中做轻微耗时操作,导致UI线程卡顿;布局Layout过于复杂,无法在16ms内完成渲染;同一时间动画执行的次数过多,导致CPU或GPU负载过重;View过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU或GPU负载过重;

2024-05-26 22:33:57 468

原创 8年Android老码农现身分享:一个月面试6家大厂屡败屡战,那些面试学习上走过的弯路

**帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。**无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。

2024-05-26 22:33:25 276

原创 2024年最新阿里、字节、腾讯、京东等一线大厂高频面试(Android岗)真题合集,面试轻松无压力

JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。20.说下Activity的启动模式,生命周期,两个Activity跳转的生命周期,如果一个Activity跳转另一个22.Activity21.再按下Home键在回到Activity的生命周期是什么样的。由于文章篇幅限制,不可能将所有面试题以文字形式展示出来,本篇为大家精选了一些面试题,有需要的程序猿(媛)可以点击下方传送门免费获取。

2024-05-26 22:15:20 423

原创 2024年最新 Android 面试点梳理,通往Android封神之路的知识体系

3.访问者模式:将作用于某数据结构中各元素的操作分离出来封装成独立的类,对这些元素添加新的操作,但不改变原数据结构,实例:asm 中的 classVisitor 中再分别对类注解、变量、方法等进行处理。3.适配器模式:改变类的接口,使原本由于接口不匹配而无法一起工作的两个类能够在一工作,实例:RecycleView 的 Adapter 不管什么类型的 View 都返回 ViewHolder。新生代:新建小对象会进入新生代;2.可达性分析法:从 GC ROOT 开始搜索,不可达的对象都是可以被回收的。

2024-05-26 22:14:49 386

原创 2021年阿里等大厂Android岗春招行情分析(含校招)和面试题汇总

由于篇幅有限,我把更多详细的面试题及答案整理成了PDF文件,领取途径:我的文档希望大家可以好好准备,在接下来的面试中大展拳脚,一举拿下心仪的offer。3239)]希望大家可以好好准备,在接下来的面试中大展拳脚,一举拿下心仪的offer。[外链图片转存中…(img-fkvRuIg6-1716731783239)]

2024-05-26 21:56:41 322

原创 2021大厂Android面试经验BO5,大海胜三场,拿下。

很多人会问:为什么发题目了不发答案,我们身为程序员,事事讲效率,如果你对题目没有需求,我放答案也只是多此一举,所以单单只是放了一部分题目。从点击应用图标到进入应用,Android系统都做了哪些工作,期间涉及到的进程切换有哪些?说说你对设计模式的理解,开发过程中主要用到了哪些设计模式?强引用 弱引用 软引用 虚引用的区别和使用场景。可重入锁的实现,公平锁非公平锁都是什么定义?当你的开发任务很紧张,你怎么去做代码优化的?都用过那些常用的数据结构,说说对树的了解?热修复的原理,你都了解过哪几种热修复框架。

2024-05-26 21:56:10 278

空空如也

空空如也

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

TA关注的人

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