自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 9,安卓项目开发范例大全

SUPPRESSED_EFFECT_PEEK 防止通知短暂进入视图(“滑出”)。SUPPRESSED_EFFECT_STATUS_BAR 防止通知显示在支持状态栏的设备的状态栏中。SUPPRESSED_EFFECT_BADGE 在支持标志的设备上屏蔽标志。 如需了解详细信息,请参阅修改通知标志。SUPPRESSED_EFFECT_AMBIENT 在支持微光显示的设备上屏蔽通知。SUPPRESSED_EFFECT_NOTIFICATION_LIST 防止通知显示在支持列表视图(如通知栏或锁屏)的设备的

2022-01-03 10:31:18 1519

原创 Android - 底部菜单架构设计及封装实现,一次哔哩哔哩面试经历

 <?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="64px"    android:layout_height="wrap_con

2022-01-03 10:25:39 219

原创 Android - singleTask启动模式详解,字节跳动面试官

启动应用后,系统当前任务栈如图2所示:图2 应用启动默认任务栈当MainActivity启动SingleTaskActivity时,由于SingleTaskActivity没有设置taskAffinity,因此其默认taskAffinity为系统默认任务栈(即应用启动时所创建的任务栈),所以系统在当前任务栈中寻找是否已经存在SingleTaskActivity的实例。不存在则创建这个activity的实例并置于栈顶,如图3所示:图3 任务栈中无实例对象时启动SingleTaskActivity其

2022-01-03 10:24:14 406

原创 Activity显示界面——说说View的那些理不清的关系,这份333页关于性能优化知识点的PDF你不能不看

就是这样,小弟DecorView就被创建出来了,然后就该小弟工作了。上文说过,小弟DecorView被创建出来是要干啥的?要根据不同的主题设置不同的布局结构,这个工作就发生在generateLayout方法中了,具体咱今天就不分析了。看似小弟的工作也完成了?等等,应用自己的布局还没加载呢嘛,重要的事情还没开始做呢。再回到上面的setContentView方法中,在调用installDecor方法创建了小弟之后,还做了一件事://加载xml布局文件mLayoutInflater.inflate(

2022-01-03 10:21:24 105

原创 Activity启动流程分析(android-29),android webview

private void attach(boolean system, long startSeq) {mInstrumentation = new Instrumentation();// …mInstrumentation.basicInit(this);ContextImpl context = ContextImpl.createAppContext(this, getSystemContext().mPackageInfo);mInitialApplication = context.m

2022-01-03 10:19:59 194

原创 Activity 过渡动画 — 让切换更加炫酷,高级android面试答案

在 AnimationActivity 中的 setContentView(); 方法前加入一行代码://在需要启动的 activity 中开启动画的特征getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);或者,在 AnimationActivity 中设置如下 style,并引用到 AnimationActivity 即可。true第三步:在 AnimationActivity 中设置要应用的动画效果,如上面介绍的,效果

2022-01-03 10:18:34 140

原创 Android 指纹解锁和MD5加密密码,Android开发教程

= new FingerprintAuthenticationDialogFragment();fragment.setCryptoObject(new FingerprintManager.CryptoObject(cipher));boolean useFingerprintPreference = sharedPreferences.getBoolean(getString(R.string.use_fingerprint_to_authenticate_key),true);if (use

2021-12-31 11:29:57 129

原创 Android 性能优化必知必会 _ Android Performance,android常用面试题

ZRAM SWAP 内存管理讲解 : nekosc.com/technology/…Android OOM 案例分析 : tech.meituan.com/oom_analysi…Android 代码内存优化建议-Android 资源篇 : androidperformance.com/2015/07/20/…Android 代码内存优化建议-Android 官方篇 : androidperformance.com/2015/07/20/…Android 代码内存优化建议-Java 官方篇 : a.

2021-12-31 11:27:34 1942

原创 Android 性能优化—— 启动优化提升60,2021最新大厂Android面试集合

应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动。在冷启动时,应用程序从头开始。在其他状态下,系统需要将正在运行的应用程序从后台运行到前台。我们建议您始终根据冷启动的假设进行优化。这样做也可以改善热启动和温启动的性能。在冷启动开始时,系统有三个任务。这些任务是:加载并启动应用程序。启动后立即显示应用程序空白的启动窗口。创建应用程序进程。一旦系统创建应用程序进程,应用程序进程就会负责下一阶段。这些阶段是:创建app对象.

2021-12-31 11:26:28 311

原创 Android 开发艺术探索笔记(7),内容太过真实

}private void responseClient(Socket client) throws IOException {//用于接收客户消息BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));//用于向客户发送信息PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(cli

2021-12-31 11:25:09 95

原创 Android 开发艺术探索笔记(15),flutter下拉刷新背景

帧动画比较简单,但容易引起OOM,所以在使用帧动画时,尽量避免使用过多尺寸大的图片。View动画的特殊使用场景View动画还可以在ViewGroup中控制子元素的出场效果,在Activitiy中可以实现不同Activity之间切换效果。具体用到的类是LayoutAnimation和overridePendingTransition这个方法。具体代码就不展示了。属性动画属性动画可以作用于任何对象,也有多样的动画效果。默认时间间隔是300ms,默认帧率是10ms/帧。兼容API11以下的话要用的Nie

2021-12-31 11:24:13 155

原创 Android 布局异步加载中的pools对象缓存池源码分析,34岁程序员年薪50w

}使用方法,如下:public class MyPooledClass {private static final SynchronizedPool sPool =new SynchronizedPool(10);public static MyPooledClass obtain() {MyPooledClass instance = sPool.acquire();return (instance != null) ? instance : new MyPooledClass();}p

2021-12-31 11:22:08 140

原创 Android 基础:Fragment的介绍与应用,QQ底栏,事件分发机制流程图

Fragment有两种加载方式:一种是在Activity的layout中使用标签声明;另一种方法是在代码中把它加入到一个指定的ViewGroup中。加载方式1:通过Activity的布局文件将Fragment加入Activity在Activity的布局文件中,将Fragment作为一个子标签加入即可。<?xml version="1.0" encoding="utf-8"?>《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+...

2021-12-31 11:20:57 343

原创 Android 启动优化(五)- AnchorTask 1,GitHub标星1w的Android架构师必备技能

7《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享.addTask(TASK_NAME_THREE).afterTask(TASK_NAME_ZERO, TASK_NAME_ONE)8               &

2021-12-31 11:19:54 95

原创 Android开发:为什么你的学习效率如此低,为什么你很迷茫

关于“没有正向反馈”这应该很好理解,这里的没有正向反馈指的就是我们在学习的过程中并不能看到感受到因学习而真正给我们带来有什么不一样的东西,哪怕是一种感觉,又或者是物质上的东西,总之,这是能够让我从内心觉得“学习真好”,可是我们往往却很少遇到。我们总是希望付出了就能立马看到收获的,一旦达不到自己的期望,我们也就失去了激情,甚至开始抱怨,自然学习效率就会下降,所以学习中,我们一定要对正向反馈加以重视,这里说几点关于我学习中用到的正向反馈吧!1. 我学习编程有写博客的习惯,当我刚写完一篇博客的时候会有点小小成

2021-12-30 12:56:55 198

原创 Android开发面试——Java泛型机制7连问,338页网易Android面试真题解析火爆全网

如上list1.getClass==list2.getClass返回true,说明泛型类型String和Integer都被擦除掉了,只剩下原始类型Java的泛型也可以被称作是伪泛型真泛型:泛型中的类型是真实存在的。伪泛型:仅于编译时类型检查,在运行时擦除类型信息。看到这里我们可以自然地引出下一个问题,为什么Java中的泛型是伪泛型,为什么要这样实现?2.2 为什么需要泛型擦除?泛型擦除看起来有些反直觉,有些奇怪。为什么Java不能像C#一样实现真正的泛型呢?为什么Java的泛型要用"

2021-12-30 12:56:00 96

原创 Android开发Gradle高级技巧、自定义Gradle-Task、打包完成自动签名

签名系统apk所需要的东西,两个系统提供的证书,一个jdk提供签名jar文件sign.sh就是执行这个java -jar ./signapk.jar ./platform.x509.pem ./platform.pk8 被签名apk的路径 签名好的apk路径命令,只不过被封装了一下而已#!/bin/shapk源文件路径origin=$1output=$2java -jar ./signapk.jar ./platform.x509.pem ./platform.pk8 ${origin} ${o

2021-12-30 12:54:10 279

原创 Android开发8年,2017-2020面试50家公司经验总结:Android面试过程所需要掌握的技术

Android面试过程所需要掌握的技术一场面试都有一个流程,拿Android面试来说,面试内容不可能全是Android问题,里面应该会有编程基础相关的问题。我对Android面试中的问题做了下分类,如下所示:类别描述数据结构和算法熟悉或者知道Java熟练掌握Android熟练掌握设计模式和架构熟悉一般来说,一个Android应用开发岗位是不需要太强的数据结构和算法的,但是这并不意味着候选者可以完全不懂数据结构和算法,所以数据结构和算法大家还是要稍微了.

2021-12-30 12:53:14 71

原创 Android中SlidingDrawer利用透明动画提示效果,终于有人把Android程序员必学知识点全整理出来了

android:textSize=“26sp”android:text=“抽屉的内容”/><Buttonandroid:layout_width=“match_parent”android:layout_height=“wrap_content”android:text=“我是打酱油的”android:background="#ff00ff"/> Activity中的实现效果的代码:(透明动画)Activity代码如下:public class MyDemo e

2021-12-29 14:14:59 562

原创 android中RecyclerView的简单使用(二,android音视频面试

setContentView(R.layout.activity_main);// 查找控件recyclerView = (RecyclerView) findViewById(R.id.rview);// 初始化list集合for (int i = 0; i < 100; i++) {list.add("数据 " + i);}MyAdapter adapter = new MyAdapter(MainActivity.this, list);//将适配器放到recyclerView

2021-12-29 14:13:44 123

原创 Android中applicationId的定义,flutter插件

此页面已过时。重定向到  https://developer.android.com/studio/build/application-id.htmltitle="Url重定向器修改" width="100%" height="50" scrolling="no" id="1977211423" class="igm" src="//pd6vrh77l2o5770tln703abh1n14n9bt-a-sites-opensocial.googleusercontent.com/gadgets/i

2021-12-29 14:12:35 230

原创 Android—,2021Android进阶者的新篇章

oncreate()->onstart()->onResume()->onRestart()->onPouse()->onStop()->onDestory()上面图概括了android生命周期的各个环节,描述了activity从生成到销毁的过程。onCreate():当我们点击activity的时候,系统会调用activity的oncreate()方法,在这个方法中我们会初始化当前布局setContentLayout()方法。onStart():onCrea

2021-12-29 14:11:29 63

原创 Androidstudio的约束布局,安卓面试宝典pdf

第二种用于删除某一个控件的所有约束,选中一个控件,然后它的左下角会出现一个删除约束的图标,点击该图标就能删除当前控件的所有约束了,如下所示。第三种用于删除当前界面中的所有约束,点击工具栏中的删除约束图标即可,如下图所示。Inspector=========================================================================这样我们就把ConstraintLayout的基本用法学完了,接下来我们开始学习一些进阶的内容。当你选中任意一个.

2021-12-29 14:09:14 788

原创 Android-高级-UI-进阶之路-(二)-深入理解-Android-8-0-View-触摸事件分发机制

public boolean dispatchTouchEvent(MotionEvent ev) {/**首先按下的触发的是 ACTION_DOWN 事件/if (ev.getAction() == MotionEvent.ACTION_DOWN) {onUserInteraction();}/*拿到当前 Window 调用 superDispatchTouchEvent 方法/if (getWindow().superDispatchTouchEvent(ev)) {return

2021-12-29 14:08:11 816

原创 Android-架构新组件---让天下没有难做的-App,Android架构组件Room功能详解

Jetpack 不属于 Android Framework,不是 Android 开发的必需品,它只是应用层开发的一种辅助手段,帮我们解决了一些常见问题,比如版本兼容、API 易用性、生命周期管理等。其中 Architecture 部分的组件(Android Architecture Components,以下简称 AAC)组合起来形成了一套完整的架构解决方案,在没有更好的方案被发明出来之前,我们姑且把 AAC 当做 Android 架构领域的最佳实践,它的出现一定程度上避免了很多不必要的轮子。官方给出的

2021-12-29 14:07:09 383

原创 Android-性能优化之谈谈Java内存区域,移动终端开发期末考试及答案

方法区(Method Area)方法区(Method Area)与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类 信息、常量、静态变量、即时编译器编译后的代码等数据。虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑 部分,但是它却有一个别名叫做 Non-Heap(非堆),目的应该是与 Java 堆区分开来。对于习惯在 HotSpot 虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久 代”Permanent Generation),本质上两者并不等价,仅仅

2021-12-29 14:05:57 1069

原创 Android-性能优化—,零基础android

###应用启动速度一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降,或者卸载放弃该应用程序本文将从两个方向优化应用的启动速度 :1.视觉体验优化2.代码逻辑优化###视觉优化应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动关于这3种启动方式,可以查看谷歌开发文档大家常说的是冷启动和热启动1.冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启

2021-12-29 14:04:54 63

原创 Android代理模式基础,flutterandroid混合开发

// Declare any non-default types here with import statementspublic interface IMyAidlInterface extends android.os.IInterface {/** Default implementation for IMyAidlInterface. /public static class Default implements com.bc.sample.IMyAidlInterface {@Overr

2021-12-28 12:49:47 86

原创 Android中的动画效果,flutter常见面试题

fromYScale 属性为动画起始时Y坐标上的伸缩尺寸toYScale   属性为动画结束时Y坐标上的伸缩尺寸说明:以上四种属性值0.0表示收缩到没有1.0表示正常无伸缩值小于1.0表示收缩值大于1.0表示放大pivotX     属性为动画相对于物件的X坐标的开始位置pivotY     属性为动画相对于物件的Y坐标的开始位置说明:以上..

2021-12-28 12:46:18 127

原创 Android中RelativeLayout和LinearLayout性能分析,android开发基础代码

measureChild(child, params, myWidth, myHeight);if (positionChildVertical(child, params, myHeight, isWrapContentHeight)) {offsetVerticalAxis = true;}if (isWrapContentWidth) {if (isLayoutRtl()) {if (targetSdkVersion < Build.VERSION_CODES.KITKAT) {w

2021-12-28 12:44:58 129

原创 Android中applicationId的定义,值得一读

此页面已过时。重定向到  https://developer.android.com/studio/build/application-id.htmltitle="Url重定向器修改" width="100%" height="50" scrolling="no" id="1977211423" class="igm" src="//pd6vrh77l2o5770tln703abh1n14n9bt-a-sites-opensocial.googleusercontent.com/gadgets/i

2021-12-28 12:44:02 726

原创 android下拉刷新——swipeRefresh的使用,kotlin库

<androidx.swiperefreshlayout.widget.SwipeRefreshLayoutandroid:layout_width=“match_parent”android:layout_height=“match_parent”><ListViewandroid:layout_width=“match_parent”android:layout_height=“match_parent”/></androidx.swiperefreshlayo

2021-12-28 12:42:59 529

原创 Android一次完美的跨进程服务共享实践,android界面开发基础

包含公司所有需要集成录音服务的端,这里不需要解释Manager层该层负责Service层的管理,包括:服务的绑定,解绑,注册回调,开启录音,停止录音,检查录音状态,检查服务运行状态等 ###Service层 核心逻辑层,通过AIDL的实现,来满足跨进程通信,并提供实际的录音功能。目录一览看代码目录的分配,并结合架构图,我们来从底层往上层实现一套逻辑IRecorder 接口定义public interface IRecorder {String startRecording(RecorderC

2021-12-28 12:41:56 509

原创 Android~Service+BroadcastReceiver使用,android开发文档英文

Service.javapackage com.example.servicecallback;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;public class ContentService extends Service {@Overridepublic IBinder onBind(Intent arg0) {.

2021-12-28 12:39:42 66

原创 android夜间模式Support Library,kotlin开发windows程序

Android官方在Support Library 23.2.0中已经加入了夜间主题。也就是只需要通过更换主题便可实现日间模式和夜间模式的切换。坑很多,看完再想想符合不符合自己需求。一、实现夜间模式需要的配置1、引入support包implementation ‘com.android.support:appcompat-v7:28.0.0’2、让我们项目的主题继承夜间模式主题,在style中设置如下主题:3.新建drawable-night和values-night的资源目录。value.

2021-12-27 12:29:19 189

原创 Android基础到进阶UI爸爸级 TextView介绍+实例,android嵌入式开发环境搭建

android:shadowRadius=“2”android:text=“右侧添加图片和使用阴影”android:textColor="@color/color_188FFF"android:textSize="@dimen/text_size_20" /><TextViewandroid:layout_width=“match_parent”android:layout_height=“wrap_content”android:autoLink=“email|ph

2021-12-27 12:28:04 344

原创 Android之练习MVVM+DataBinding框架模式,对Android开发的现状和未来发展的思考

MVVM框架实现了数据与视图的绑定(DataBinding),当数据变化时,视图会自动更新;反之,当视图变化时,数据会自动更新。DataBinding使用步骤:启用DataBinding修改布局文件为DataBinding布局数据绑定使用MVVM框架步骤:提供View、ViewModel以及Model三层将布局修改为DataBinding布局View与ViewMedel之间通过DataBinding进行通信获取数据并展示在界面上MVVM的优点双

2021-12-27 12:23:34 87

原创 Android中的Handler类介绍,2021年Android社招面试题

在Android平台中,新启动的线程是无法访问Activity里的Widget的,当然也不能将运行状态外送出来,这就需要有Handler机制进行消息的传递了,Handler类位于android.os包下,主要的功能是完成Activity的Widget与应用程序中线程之间的交互。接下来对该类中常用的方法进行介绍,如下表所示。方法签名描    述public void handleMessage (Message msg)子类对象通过该方法接收信息public final boo

2021-12-27 12:20:18 80

原创 Android性能优化——性能优化的难题总结,android高级开发实战

第二种问题是用户虽然不会直观的感受到,比如说:内存占用高,抖动频繁,但是这种隐藏的问题可能会导致内存溢出,从而影响程序的正常运行此外性能问题还有应用耗电、网络请求慢、崩溃率和异常率高其中崩溃率和异常率属于稳定性的范畴,崩溃率比较好理解需要注意的是应用异常率。异常是指APP不能正常的作出反应,比如说我们点击了一个按钮,它并没有正确的跳转到下一个界面,此时APP并没有崩溃,但是同样它也处于不可用的状态,带来的非常不好的用户体验。难点二:线上问题无法排查线上问题排查困难对于很多Androi..

2021-12-26 13:53:44 141

原创 Android开发中15条小经验,移动端页面开发模版

(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有 一点与普通互联网应用有所差异的。(3)针对直接UR《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享L的HttpURLConnection(4)Google集成了Apache HTT

2021-12-26 13:48:04 372

空空如也

空空如也

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

TA关注的人

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