自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 startForegroundService与startService 使用浅析

最近项目总是遇到Context.startForegroundService() did not then call Service.startForeground():这个问题,这次来仔细分析一下原因

2023-02-20 17:30:06 3496

原创 以FrameLayout为例 探究关于Android中View绘制那些事

话不多说 先上问题:代码1:<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <View android:la

2021-04-28 10:47:20 215

原创 PowerMock 入门指北

随着工业化的推进,测试在开发过程中所占比重也越来越大。“测试驱动开发”(TDD:Test-Driven Development)强调程序员应先编写测试代码,梳理逻辑分支与可能的case,再编写实际的业务代码。这种以测试为驱动的开发模式最大的好处就是确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程度地保证该模块行为仍然是正确的。在单元测试中,我们希望通过独立地去测某个类中的方法,然而实际的情况往往是这些类直接的依赖关系错综复杂,给我们的测试代码编写增加了不少难度。这时,我们便可以依

2021-03-29 16:28:58 1036

原创 记关于Android开发中使用System.currentTimeMillis()不准确的问题

在安卓开发中我们想要获取当前的时间一般都会直接使用系统提供的API System.currentTimeMillis() 轻松快捷获取当前的时间戳返回以毫秒为单位的当前时间,返回的是当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)对于一些需要获取时间差值很小的场景(比如统计资源加载时间,系统启动速度,首帧渲染时长…)是没有问题的,可如果是类似统计用户的使用时长、由当前时间控制系统运行逻辑等场景,这个值就不那么可靠了。那么可以去使用服务器的时间,这样会可靠许多。

2021-01-12 11:47:41 3284

原创 关于kotlin中的by lazy初始化view的一些探究

项目场景:开发完需求,及时来一波CR。第一次接触kotlin写代码,在很多代码中都看到过关于使用 by lazy去初始化一个view的写法。private val mView: View? by lazy { view?.findViewById<View>(R.id.my_view) }乍一看 好像没什么不对:使用了懒加载,在需要用到mView的时候再去findView从当前的view中获取mView实例,同时使用by lazy创建的变量仅仅初始化一次并且全局共享。让我们再来看看fr

2020-12-01 16:00:29 1402 2

原创 小程序性能优化的一些实践

关于小程序性能优化的尝试及分析总结背景在项目推广前期,小程序凭借其轻量级的安装下载方式很容易被用户接受。同时,依赖于微信、QQ自身的庞大流量的支撑,也是不错的引流方案。但是,在我们的项目实际落地推广时,从微信提供的数据显示来看,用户在启动页流失数量巨大,有时甚至可高达50%及以上。通过性能监控助手我们可以发现,在2-3s的时间段中用户流失比例最高。依据微信官方给出数据,首屏时间不超过 5 秒,但实际情况是用户可能无法接受这样的等待时长。怎样进行性能优化为解决这一问题,我们首先需要分析在小程序启动时都

2020-08-16 02:27:20 1339

原创 android学习体验之下载器demo

背景当我们在使用app时,经常会遇到需要下载相关资料的情况。此时,下载任务应在后台执行且不应阻塞用户操作的主进程,同时需要像用户暴露出相关操作接口:开始 / 暂停 / 继续,并使用进度条作为标识提醒。下载功能实现partdoInBackground方法中我们可以获取到下载的URL地址,并解析出下载文件名作为存入SD卡中的文件名。在这里需要对文件的长度进行判断(在请求中加入一个header用于告诉服务器下载开始的字节),从而获取到当前文件的下载信息。protected Integer doInBac

2020-07-24 23:37:40 267

原创 从集成百度语音SDK说起---flutter与native数据通信初试

flutter在移动端开发领域凭借其一处代码,多端运行的特点,备受关注。但是目前来说,市面上的app功能复杂多变,因此也很难见到纯flutter的项目,其中会夹杂着很多native的插件及相关代码。因此,了解flutter与native端是如何建立数据通信的对于开发而言至关重要。下面将以集成百度语音识别的SDK到flutter项目中为例,介绍如何实现两端通信。插件代码编写首先在百度AI开放平台上下载SDK,同时,在本地项目中用android studio打开android目录,新建asr_plugin文

2020-06-23 18:01:24 1125 2

原创 flutter_redux初体验

开始之前,推荐阅读 你可能并不需要Redux: “You Might Not Need Redux”介绍Redux随着项目的规模不断扩大,需要管理的状态数据也越来越多。如果一个 model 的变化会引起另一个 model 变化,那么当 view 变化时,就可能引起对应 model 以及另一个 model 的变化,依次地,可能会引起另一个 view 的变化。直至你搞不清楚到底发生了什么。想重现问题或者添加新功能就会变得举步维艰。Redux 是 JavaScript 状态容器,提供可预测化的状态管理。Re

2020-06-17 21:01:33 159

原创 关于 flutter 中自定义toast的总结

上周组内项目 安排在应用内显示一个toast的弹窗提醒 由于是flutter项目,其框架本身所提供的toast组件并不好用,UI上也不支持自定义的设计。因此决定自己写一个toast组件。虽然是一个很小的组件,但是前前后后也折腾了快两个礼拜,也算是正式上手flutter开发后的第一次实践吧。1.0由于toast出现的时间是不定的,因此它将以绝对定位的方式插入页面之中。所以使用了 overlay 这个类,该类的具体介绍这里就不展开叙述了。Overlay 主要就是两个方法,1. 往Overlay中插入entr

2020-06-11 13:19:42 1531

原创 Flutter 异步UI及stream

很多时候,我们都需要一些异步的数据来更新界面显示UI,如:启动一个App时先加载loading页面,待请求用户数据返回后再更新;下拉加载更多内容时,显示加载动画gif,数据返回时渲染页面显示。Flutter专门提供了FutureBuilder和StreamBuilder两个组件来快速实现异步数据更新UI的功能。FutureBuilderFutureBuilder会依赖一个Future,它会根据所依赖的Future的状态来动态构建自身。const FutureBuilder({ Key key,

2020-06-02 11:35:33 235

原创 Flutter的状态管理-provider

介绍flutter中的状态管理官方文档指路当我们在进行app开发时,会需要app的不同界面共享应用程序的某些状态。如何使不同的页面间进行数据的共享,以及处理相关数据导致页面重绘的问题是本文主要讨论的地方。声明式UIflutter应用是声明式的,也就是说,状态的改变会导致UI的重新渲染,在声明式的编程中,需要注意的是,一旦给定了一个状态,也就是给定了相对应界面的UI,不能改变状态分类这里主要介绍的是需要开发者进行管理的状态类型短时状态(ephemeral)短时状态 (有时也称 用户界面(

2020-05-31 19:14:55 280

原创 浅谈小程序开发中的一些痛点

最近工作任务安排了一个小程序开发项目,第一次实战解除小程序开发,还是遇到了很多问题。在这里做一个小结, 也方便自己日后回顾。1. 数据状态管理与同步小程序可以有多个入口页面,每个页面及其组件维护自己的一套数据,通过js进行修改操作,setDate同步到页面显示,数据声明清晰。但是项目作为一个整体,数据状态之间必定有共同 可共享的项,操作这些多个界面都会使用到的数据时就要格外注意,增大了开发的时...

2020-01-21 16:09:53 913

原创 微信小程序接入订阅消息

最近在做的小程序项目中需要使用到消息推送的功能。产品需求:对于注册用户在小程序中的相关状态(如:个人封面照审核通知),会话消息进行推送提醒。小程序相关消息能力由于“模版消息 ”这一接口即将废弃,因此选择采用“订阅消息”来实现 (注:微信没有更新到 7.0.5以上的版本,就会提示 wx.requestSubscribeMessage is not a function。)订阅消息:• 当用...

2019-12-18 20:41:28 2191 1

原创 小程序开发入门指北

随着微信的普及,依赖微信作为基础平台的小程序也发展形势大好。博主最近在做小程序相关的开发,一路上爬坑不少。暂先记一下开发准备这一块的相关问题。微信公众平台申请相关账号首先 需要登陆 微信公众平台 进行相关的账号准备工作,这里介绍一下关于个人微信公众号的申请与关联相关的小程序 (公众号和小程序这里都是实名注册的,需要上传你的相关身份证信息,包括但不限于身份证照骗。企业公众号能做到的功能、关联的小...

2019-12-17 21:06:43 293 1

原创 Flutter+VSCode+SDK踩坑合集

Flutter+VSCode+SDK踩坑合集安卓环境搭建flutter环境搭建VSCode + 夜神模拟器问题时间最近心血来潮,响应程序员应该不停学习的号召,准备试水一下目前巨火的移动端开发框架 flutter,技术比较新,国内上手的公司也不多所以在开发体验这一块,至少是错误处理这方面问题体验不是很好…这篇博客主要讲一下环境构建方面的问题,也记录一下我的一些踩坑到吐血的经历。安卓环境搭建f...

2019-09-06 13:35:47 5170 1

原创 手写实现Promise

实现一个promiseemmm,前面那篇blog讲的东西都比较深入了,不管我们在使用一个东西或者方法的时候自然是要知其然更要知其所以然,所以今天打算来谈谈我们究竟应该如何去实现一个promise呢?一、Promise的A+规范首先,我们需要了解设计一个Promise所需要遵循的规范守则是什么,这时候就要提及ES6中实现promise所使用的A+规范了。要求promise 的状态 ----...

2019-08-10 00:04:29 354

原创 讲一讲那些年的Promise

还是想谈谈Promise一、你真的了解异步回调吗二、关于Promise一、你真的了解异步回调吗众所周知,JavaScript是一门单线程的语言,可不要把它的单线程与浏览器的执行搞混了。浏览器依旧是多线程执行的,发请求的进程发请求,渲染UI的进程渲染UI,不一样的是,JS的执行引擎进程和UI的渲染进程是互斥的(这也就是为什么我们要求最好将 < script>标签放在页面的body元素...

2019-08-08 23:56:50 145

原创 阿里前端二面---视频面

阿里前端二面---视频面上次的阿里面试,自我感觉还不错,期待着二面的到来,然鹅就是因为错过了两个电话,阿里就再没有打过来了。。。大概一个多月后我都快忘了这件事,又是猝不及防的一个面试邀请。还是老规矩记一下吧上次的阿里面试,自我感觉还不错,期待着二面的到来,然鹅就是因为错过了两个电话,阿里就再没有打过来了。。。大概一个多月后我都快忘了这件事,又是猝不及防的一个面试邀请。还是老规矩记一下吧1.JS...

2019-07-22 13:53:20 924

原创 字节跳动EE笔试题目

字节跳动EE笔试题目刚参加完字节跳动的前端研发笔试,趁着还有记忆写一下吧。一共8道题,类型是编程问答题,共90min,总分401.将字符串转为数组,同时将多行字符串转为的数组合并为二维数组2.table中有很多的数据都是异步加载并渲染的,现在要求实现点击某一个td显示其中的数据内容3.编写函数设置时间戳显示时间间隔4.讲一下什么是原码、补码和反码,同时它们之间是如何转换的5.关于bi...

2019-06-09 14:20:08 734

原创 阿里前端一面

阿里前端一面--电话面外面正逛街买着东西的我突然手机收到了来自北京的一个电话,通知我他是阿里巴巴的面试官。记起几天前确实是有投过阿里来着,问我现在方不方便参加面试(其实时间是可以自己和面试官协调的,我比较作死,觉得复习其实也没太大必要不如就直接上)。大概问到的问题我整理如下:1.大概介绍一下你自己及你的相关项目经理和实习经历2.你有提到过vue和react,那么请你来比较一下这两个框架的优缺...

2019-06-07 10:05:00 516

原创 腾讯前端面试题(二面电话面)

腾讯前端面试题(二面电话面)腾讯的面试每一次都来的很突然,下午四点多深圳的号码打过来直接就说下午7点约个二面吧。当时整个人都震惊了,距离我上次参加一面已经过去了一周,没想到居然侥幸混过了一面。虽然没给时间准备,但这次毕竟有了之前的经验加成,就不是那么紧张了。但还是打开了百度准备看一下相关的面试题(本人算法渣渣,但是听说大厂面试都要考算法?一面没有考,所以很担心二面)然鹅,我想多了,一个小时的面...

2019-05-22 11:24:36 8614 3

原创 腾讯前端面试题(一面电话面)

记一下我凉凉的腾讯前端面试一面是电话面,腾讯效率很高,我下午五点多投的简历晚上十点就给我打电话约面试了。真是初生牛犊不怕虎,我说上就上和面试官约了时间就开始happy去了,自然我轻敌了也就凉透了。趁着还有些记忆现在把我的面试题大概整理一下,可做参考。真的还是要好好复习一下的!!注意你的基础注意你的基础注意你的基础好了,正文如下:1.大致介绍一下你的前端项目经历2.如何使低版本的浏览器...

2019-05-18 14:43:26 6403 4

原创 JavaScript实现几种排序算法

关于归并排序---递归实现// 归并排序中的——治// 解释各参数的意思:// arrB为待排序列, arrN为临时序列, lHead表示左边起始的排序位置, rHead表示右边起始的排序位置,rEnd表示结束位置function Merge(arrB, arrN, lHead, rHead, rEnd){ let lEnd = rHead - 1 //假设两个序列紧靠在一起, ...

2019-04-18 16:46:33 175

转载 关于JS中的跨域访问的一些问题

关于JS中的跨域访问的一些问题:只要 协议、 域名、端口 有一个不同,都会被当做是不同的域解决跨域的一些常见方法及优缺点比较:1.CORSCORS(Corss-Origin Resource Sharing,跨资源共享),基本思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应的成功或失败。即给请求附加一个额外的Origin头部,其中包含请求页面的源信息(协议、域名和...

2019-04-10 19:22:28 92

原创 解决Error: Cannot find module 'webpack/lib/RequestShortener'

Error: Cannot find module ‘webpack/lib/RequestShortener’at Function.Module._resolveFilename (module.js:548:15)at Function.Module._load (module.js:475:25)at Module.require (module.js:597:17)at requ...

2019-04-01 20:26:27 16407 5

ServiceBestPractice.zip

这是一个使用Java编写的安卓下载器,后台启动service服务进行下载,同时前台使用进度条等进行任务下载显示,使用Asynctask 支持断点续传

2020-07-27

使用JavaScript编写的语法分析器

这是一个使用JavaScript编写的基于LL(1)文法的语法分析器

2019-05-18

空空如也

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

TA关注的人

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