自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Flutter开发之——文件及文件夹操作,android移动应用开发答案第二版

文件夹操作(创建、遍历、重命名、删除)文件操作(创建、数据写入、读取数据、删除文件)json文件数据读取二 添加依赖因为文件及文件夹的操作依赖于path_provider在项目的 pubspec.yaml 文件中添加依赖flutter pub add path_provider点击pubspec.yaml右上角的Pub get或者执行如下指令flutter pub get三 文件夹操作(创建、遍历、重命名、删除)3.1 创建文件夹_createDir() async..

2021-12-25 14:24:49 696

原创 Android性能优化---帧动画OOM?优化帧动画之SurfaceView逐帧解析

setBackgroundTransparent();}private void setBackgroundTransparent() {getHolder().setFormat(PixelFormat.TRANSLUCENT);setZOrderOnTop(true);}@Overridepublic void surfaceCreated(SurfaceHolder holder) {isAlive = true;startDrawThread();}@Overridepubl

2021-12-24 14:15:27 291

原创 flutter实战总结(老手不必看),flutter消息推送方案

默认高度为半屏,设置isScrollControlled为true是全屏,不想全屏,使用BoxConstraints组件限制最大高度键盘溢出首先使用SingleChildScrollView作为根组件让其可以滚动,然后获取键盘高度MediaQuery.of(context).viewInsets.bottom作为padding的bottom,因为这不在scaffold工作范围内,flutter不会为我们上推界面。 状态更新showModalBottomSheet等其他dialog组件,相当

2021-12-23 14:05:25 5654

原创 Flutter学习指南:编写第一个应用,Spring都没弄明白凭什么拿高薪

这是个系列文章,后面还有很多篇,希望对大家能有帮助。Flutter 是 Google 推出的移动端跨平台开发框架,使用的编程语言是 Dart。从 React Native 到 Flutter,开发者对跨平台解决方案的探索从未停止,毕竟,它可以让我们节省移动端一半的人力。本篇文章中,我们就通过编写一个简单的 Flutter 来了解他的开发流程。这里我们要开发的 demo 很简单,只是在屏幕中间放一个按钮,点击的时候,模拟摇两个骰子并弹窗显示结果。我们撸起袖子开干吧。创建项目我们这里假定读者已经安装好

2021-12-23 14:04:03 246

原创 Flutter基础(三)Dart快速入门,GitHub标星8k

| await | extends | is | sync || break | external | library | this || case | factory | factory | factory || catch | false | new | true || class | class | null | try || const | finally | on | typedef || continue | for | operator | var || covariant |

2021-12-23 14:02:57 1413

原创 Flutter33,Android移动开发基础

void initState() {// TODO: implement initStatesuper.initState();//尝试显示用户信息_showUerInfo();eventBus.on().listen((event) {//TODO//获取用户信息并显示_getUerInfo();});eventBus.on().listen((event) {//TODO});}_getUerInfo() {DataUtils.getAccessToken().then((

2021-12-23 14:01:46 90

原创 Flutter-插件开发:以微信SDK为例,android游戏开发入门

目录结构android // Android 相关原生代码目录ios // ios 相关原生代码目录lib // Dart 代码目录example // 一个完整的调用了我们正在开发的插件的 Flutter Apppubspec.yaml // 项目配置文件从 example/lib/main.dart 开始在开发我们的应用之后,先来了解一下 flutter 为我们生成的文件们,打开 example/lib/main.dart,代码如下import ‘package:flutter/ma

2021-12-23 14:00:22 233

原创 Flutter-与-原生交互(Android),Android程序员如何通过跳槽薪资翻倍

}MethodChannelflutter 调用 原生1.实现插件public class FlutterPluginTest implements MethodChannel.MethodCallHandler {private static final String TAG = “FlutterPluginTest”;/**插件标识*/public static String CHANNEL = “com.mmd.flutterapp/plugin”;private static

2021-12-23 13:59:01 83

原创 Flutter 高性能、多功能的全场景滚动容器,一定要看,android开发app

控制器:主要用于控制 PowerScrollView 的刷新、加载更多,控制滚动到某个位置等。事件回调:我们将事件分类,外部使用时可只监听需要的回调。刷新配置:为了提升刷新的灵活性,我们将刷新单出抽出,既可以使用我们提供的标准刷新组建,也可自定义。功能完善我们为 PowerScrollView 完善了业务使用的核心诉求,包括自动曝光、滚动到某个 index 、瀑布流、刷新加载更多等能力。下面将重点介绍前两部分。自动曝光能力在 Flutter 中,通常不得不将曝光放在 build 函数中,这使得

2021-12-23 13:56:33 201

原创 Flutter 的 runApp 与三棵树诞生流程源码分析,带你轻松理解Android-Hook机制

//2、回调方法赋值,当第一个可构建元素被标记为脏时调用。buildOwner!.onBuildScheduled = _handleBuildScheduled;//3、回调方法赋值,当本地配置变化或者AccessibilityFeatures变化时调用。window.onLocaleChanged = handleLocaleChanged;window.onAccessibilityFeaturesChanged = handleAccessibilityFeaturesChanged;…

2021-12-23 13:55:10 2029

原创 Flutter 注解处理及代码生成,Android攻防实战电子书

方法名随意,重点需要关注的是返回的对象。示例中我们返回的是 LibraryBuilder 对象,构造方法的参数是我们上一步创建的TestGenerator对象。实际上根据不同的需求,我们还《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享有其他Builder对象可选,Builder 的继承树:Builder_BuilderPartBuilderLibraryBui

2021-12-23 13:53:46 211

原创 Android程序媛大厂拧螺丝,未来职业如何规划?,android程序设计及实践

她主要咨询了我 4 个困惑问题,比如大厂拧螺丝怎么破?全年 996 没时间学习怎么办?等等。我觉得,她的问题还挺有代表性,于是写一篇与大家分享!一、4 个困惑问题=====================================================================1、她目前在公司就是小螺丝钉,负责的系统和模块就很少,这样一直下去怎么办?答:关于程序员从 P5 到 P7 的能力模型,一句话总结是这样的,P5 就是在比自己更资深同事的指导下完成模块开发,P6 完成核

2021-12-22 14:14:03 105

原创 Android程序员:干到三十,我就不干了,大专生三面蚂蚁金服

对于程序员来说,要学习的知识内容、技术有太多太多。很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,可以关注我,每天更新各种技术干货。至此,做为一名Android开发者,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!如若需要相关Android开发基础以及进阶资料请点击 GitHub自行查阅。

2021-12-22 14:12:37 163

原创 Android程序员该如何进阶?这份Android开发核心知识点笔记请收好

ARTHookProguard架构JetpackNDK 开发类加载器性能优化知识点汇总=====================================================================启动优化UI渲染优化崩溃优化内存优化卡顿优化存储优化网络优化耗电优化多线程并发优化安装包优化篇幅有限,无法一个一个的展示(这些知识点均已收集在了《Android开发核心知..

2021-12-22 14:11:12 139

原创 Android程序员996福报深度剖析,你真的能从资本家手上赚到钱吗?

他们平均年薪在 20 万以上,sp 能拿到 30 万,ssp 普遍能拿到 40 万年薪。拼多多开出的年薪最高,最普通的技术岗就在 40 万以上。算上涨薪速度,入职三年就可凑齐首付,六年可能全款买房,达到其他行业十年才能到达的高度。但这样的高薪,在大多数情况下,代价是不断出让个人时间。企业开两倍工资吸引员工入职,最终让一个人完成了三个人的工作量 。表面上,他们获得了远高于平均水准的薪酬,但如果计算总体劳动时间,平均到每个小时的薪资其实并不高。假如一名京东员工月薪 15000 元,每天工作 1

2021-12-22 14:09:47 138

原创 Android研发字节、腾讯等大厂面试,资深移动端工程师谈跳槽感悟

IPCWindow / WindowManagerBitmap屏幕适配ContextSharedPreferences消息机制线程异步RecyclerView 优化WebviewAndroid 扩展知识点汇总===========================================================================ARTApk 包体优化HookProguard架构..

2021-12-22 14:08:22 83

原创 Android的使用ContentProvider,下面有代码,可以运行,Android高级进阶学习资料

}try {Thread.currentThread().sleep(10 * 1000);} catch (InterruptedException e) {e.printStackTrace();}}else if(v.getId() == R.id.remove_all) {int rowId = resolver.delete(NameListProvider.all_name_uri, null, null);}else if(v.getId() == R.id.init_all)

2021-12-22 14:03:55 70

原创 Android的zygote SystemServer的启动,移动应用开发就业

{ALOGW(“Warning: tracked references remain post-initialization”);dvmDumpReferenceTable(&dvmThreadSelf()->internalLocalRefTable, “MAIN”);}if (!dvmDebuggerStartup()) {return “dvmDebuggerStartup failed”;}if (!dvmGcStartupClasses()) {return “dvm

2021-12-22 14:02:30 1279

原创 Android的Application,android内存优化面试

应用程序进程产生时就会实例化Application一般是static singletons的Context.getApplicationContext()Application是维护全局的应用程序状态的基类。在AndroidManifest.xml的标签里指定,当应用进程创建的时候,类会被初始化。通常不需要子类的应用。大多数时候,静态的singletion可以用更模块化的方法提供相同的功能。如果你的singletion需要全局上下文(例如:注册广播接收器),当第一次构造singletion的时候可以

2021-12-22 14:01:02 165

原创 Glide全方位,不是问源码那么简单,移动端页面开发调试

3、一句代码加载图片到ImageViewGlide.with(this).load(imgUrl).into(mIv1);进阶一点的用法,参数设置RequestOptions options = new RequestOptions().placeholder(R.drawable.ic_launcher_background).error(R.mipmap.ic_launcher).diskCacheStrategy(DiskCacheStrategy.NONE).override(200,

2021-12-20 17:27:03 161

原创 Gitter---高颜值GitHub小程序客户端诞生记,2021年安卓社招面试题精选

const langColor = colorNode.length? colorNode.css(‘background-color’)null;const langNode = $repo.find(’[itemprop=programmingLanguage]’);const lang = langNode.length? langNode.text().trim()/* istanbul ignore next */ null;return omitNil({author:

2021-12-20 17:25:06 318

原创 GitHub标星9,flutter实时刷新

基础组件:支撑上层业务组件运行的基础业务服务。基础 SDK:完全业务无关的基础代码。各层次职责清晰独立,可以很方便的进行拆解和组合;由于都有自己的版本,业务线可以独立发版,随时升级、回滚。基本解耦方案组件化的第一步就是对要拆出去的组件进行解耦,常见解耦方式有以下几种:(1) 公用代码处理基础业务逻辑分别拆成基础组件自身逻辑完整、用于完成某一特定功能、不含业务逻辑的一组代码,独立成 SDK代码量很小不足以拆分成单独拆分的代码和资源,我们统一放在一个专门建立的 common 组件中,

2021-12-20 17:21:06 184

原创 Github 的搭建和配置github中的SSH key值,一个月成功收割腾讯、百度、美团、网易offer

代码参数含义:-t 指定密钥类型,默认是 rsa ,可以省略。-C 设置注释文字,比如邮箱。-f 指定密钥文件存储文件名。以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press e《Android学习笔记总结+最

2021-12-20 17:19:04 257

原创 Git 命令行教程及实例教程,真的太香了

创建新仓库创建新文件夹,打开,然后执行git init以创建新的 git 仓库。检出仓库执行如下命令以创建一个本地仓库的克隆版本:git clone /path/to/repository如果是远端服务器上的仓库,你的命令会是这个样子:git clone username@host:/path/to/repository工作流你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HE

2021-12-20 17:17:26 136

原创 FrameWork内核解析之XMS内核管理(一)上篇,计算机应届毕业生面试题

ReflectHelper.java  这个是的我的反射帮助类package com.example.dexclassloaderactivity;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Arrays;/**反射辅助函数@author*/public class ReflectHe

2021-12-20 17:15:51 572

原创 Fragment执行流程分析,2021春招BAT面试真题详解

}doAddOp(containerViewId, fragment, tag, OP_REPLACE);return this;}OP_ADDswitch (op.cmd) {case OP_ADD:case OP_ATTACH:added.add(op.fragment);break;case OP_REMOVE:case OP_DETACH: {added.remove(op.fragment);if (op.fragment == oldPrimaryNav) {mO

2021-12-20 17:13:28 116

原创 Fragment使用(下),附带学习经验

<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android=“http://schemas.android.com/apk/res/android”android:id="@+id/rl_content"android:layout_width=“match_parent”android:layout_height=“match_parent”><TextViewandroid:id="@+

2021-12-20 17:11:55 478

原创 Flutter:实战技巧,最新阿里Android高级面试题及答案

技巧2:快速创建 StatelessWidget 和 StatefulWidget=========================================当编写 Flutter 代码时,在编辑框里输入 stl 可以自动弹出创建 StatelessWidget 的模板选项。而当输入 stf 时,会弹出创建 StatefulWidget 的模板选项。技巧3:获取状态栏高度和禁止字体缩放=============.

2021-12-20 17:09:58 464

原创 Java面试题二:synchronized 和 volatile 、ReentrantLock

3、volatile和synchronized的作用和区别是什么?4、CAS机制详解5、ReentrantLock(重入锁)详解六、ReenTrantLock可重入锁(和synchronized的区别)总结0、相关文章:=======Java中线程安全的体现(原子性、可见性、有序性)(自己的)1、synchronized关键字的作用====================synchronized   美 [ˈsɪŋkrənaɪzd]  同步&nbs

2021-12-19 17:54:10 286

原创 Java虚拟机规范(Java SE 8) 第一章,基于kotlin的android开发实例

1.4、说明1.5、反馈1.1、简史======Java语言是一门通用的、面向对象的、支持并发的程序语言。它的语法与C和C++语言非常相似,但隐藏了C和C++中许多复杂、深奥及不安全的语言特性。Java平台最初用于解决基于网络的消费类设备上的软件开发问题,它在设计上就考虑到要支持部署在不同架构的主机上,并且不同组件之间可以安全地交互。面对这些需求,编译出来的本地代码必须解决不同网络间的传输问题,并能够运行在各种客户端上,而且还要是客户端确信这些代码是安全的。伴随着万维网的盛行发生了一些十分有趣的

2021-12-19 17:52:34 135

原创 Java的注解,PDF超过6000页,

RetentionPolicy.CLASS :在类加载的时候丢弃。在字节码文件的处理中有用,注解默认使用这种方式RetentionPolicy.RUNTIME :始终不会丢弃。运行期也保留该注解,因此可以使用反射机制读取该注解的信息,我们自定义的注解通常使用这种方式。@Documented 一个简单的Annotations标记注解,表示是否将注解信息添加在java文档中。@Target 表示该注解的作用域(用于什么地方)。可用的ElementType参数包括:..

2021-12-19 17:50:57 468

原创 Java的Url编码和解码,字节跳动最新开源

import java.net.URLEncoder;public class URLDecoderTest {public static void main(String[] args) throws Exception {//将application/x-www-form-urlencoded字符串//转换成普通字符串//必须强调的是编码方式必须正确,如baidu的是gb2312,而google的是UTF-8String keyWord = URLDecoder.decode("%E6%96

2021-12-19 17:49:09 192

原创 Java内存模型(JMM),androidapp开发入门

相关资料1、Java内存模型1.1、JVM整体介绍:1.2、运行时数据区:1.3、Java内存模型2、垃圾回收算法2.1、如何判断某个对象是否是垃圾?2.2、标记-清除2.3、标记-复制2.4、标记-整理3、面试题3.1、简单讲一下Java内存模型【垃圾回收相关】。3.2、简单讲一下新生代和老年代。3.3、GC有多少种垃圾回收的算法,都是什么?3.4、我在new一个对象的时候,它是被放在内存的那一块区域?3.5、成员变量和局部变量:在内存区域位置的区别和回收方面的区别?结合

2021-12-19 17:46:43 726

原创 iOS 开发基础,安卓面试项目上的难点

6.拖动Lable对象到Main.storyboard上面,双击可以编辑,改成我们需要的文字即可运行效果:2015-04-15iOS模拟器不支持依赖于硬件的特性,如加速计和摄像头功能。也不支持将d应用程序下载到实际的iOS设备中,也不能在AppStore上分发应用程序。注册iOS开发者:99美元/年299美元/年Cocoa Touch使用的是Objective-C 2.0,但该语言的一个关键特性在iOS中并不可用:垃圾回收。2015-04-17OC.

2021-12-19 17:44:47 169

原创 HTTPS 原理分析——带着疑问层层深入,带你一步一步深入Handler源码

用了 HTTPS 就一定安全吗?本文将层层深入,从原理上把 HTTPS 的安全性讲透。HTTPS 的实现原理大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:WX20191127-133805@2x.png** ① 证书验证阶段**浏览器发起 HTT.

2021-12-19 17:42:27 127

原创 HMS Core 5,activity事件分发

HEM Kit:HEM Kit为企业客户提供手机、平板等终端设备的批量远程管理功能,包含如批量自动部署,实时查看设备部署状态及撤销部署设备、恢复为非工作状态等功能。查看详情新特性华为帐号服务:“添加紧急联系人”功能新增手动入口,设置方式更加灵活;帐号安全页面调整,增加开启状态标识;优化销户体验。查看详情地图服务:新增支持热力图图层绘制功能。以不同颜色标识地图上的点,这些点的集合使地图该区域以高亮的形式呈现。例如,您可以通过热力图功能展示交通拥堵情况,提醒用户躲避

2021-12-19 17:40:47 122

原创 Handler系列—Message对象的获取机制,flutter弹窗组件

从一个pool里获取Message实例,允许我们在多种情况下,避免分配新的对象*/public static Message obtain() {synchronized (sPoolSync) {if (sPool != null) {Message m = sPool;sPool = m.next;m.next = null;m.flags = 0; // clear in-use flagsPoolSize–;return m;}}return new Message().

2021-12-19 17:38:45 377

原创 Handler 源码机制,2021年Android岗位BAT大厂面试题知识点小结

很早之前看过一篇文章,对于Handler的消息机制有一个特别形象的比喻,就是送信的机制(一不小心暴漏了年龄)。| 组件 | 邮件的发送 | 作用 || — | — | — || Handler | 收件人 | 发送消息,处理消息 || Message | 信件 | 传递的消息 || MessageQueue | 信箱 | 消息队列 || Looper | 邮差 | 消息循环 |感觉很恰当的一个比喻。邮差(Looper)会不断的去查看信箱(MessageQueue)是否有邮件(Message),

2021-12-19 17:37:08 137

原创 仿探探划卡片 -- RecyclerView的四级缓存,kotlin安卓开发书籍

mViewCacheExtension这个一般给自定义用的,所以不研究RecycledViewPoolDEFAULT_MAX_SCRAP = 5 也就是ArrayList<ViewHolder>的最大size=5 也就是说缓存池里ViewHolder最多存5个,在多了就直接废弃。也就是说一行数量>5的话,上下滑动,会一直触发Adapter.onCreateViewHolder,因为缓存不够用了。源码分析复用复用就是从集合里取出ViewHolder入口:滑动 M.

2021-12-17 21:13:02 688

原创 仿抖音上下滑动分页视频,一线互联网大厂面试真题系统收录

}if (isVertical) {return super.onTouchEvent(swapXY(ev));} else {return super.onTouchEvent(ev);}}}3.2 ViewPager和Fragment采用了ViewPager+FragmentStatePagerAdapter+Fragment来处理。为何选择使用FragmentStatePagerAdapter,主要是因为使用 FragmentStatePagerAdapter更省内存,但是销毁后

2021-12-17 21:11:07 391

空空如也

空空如也

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

TA关注的人

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