BennuC_社区达人页

个人头像照片
BennuC
已加入开发者社区2029

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
初入江湖
初入江湖

成就

已发布156篇文章
2条评论
已回答0个问题
0条评论
已发布0个视频
github地址

我关注的人 更多

技术能力

兴趣领域
  • Linux
擅长领域
技术认证

暂时未有相关云产品技术能力~

Android方面10年以上经验,掘金平台优质作者

暂无精选文章
暂无更多信息

2022年05月

  • 05.14 13:46:41
    发表了文章 2022-05-14 13:46:41

    Flutter支持Windows\MacOS\Web等

    当我们在Android Studio中创建新的Flutter项目时,发现在platforms中只能选择Android、iOS和Web(flutter版本是2.10.4),而Linux、Windows、MacOS则是灰色的无法选择。 但是Flutter已经几个版本前就支持这些平台了,只是需要我们手动来启动一下。
  • 05.14 13:45:37
    发表了文章 2022-05-14 13:45:37

    滑动速度监听VelocityTracker

    有时候我们需要知道滑动速度来进行一些处理,这就需要用到VelocityTracker,通过它我们可以很方便的得到滑动速度。
  • 05.14 13:44:34
    发表了文章 2022-05-14 13:44:34

    解决No version of NDK matched the requested version问题

    一个本来好好的项目,突然在运行的时候报错: No version of NDK matched the requested version 21.0.6113669. Versions available locally: 20.1.5948944 网上很多人建议在build.gradle中添加ndk,如下: android { ... ndkVersion '20.1.5948944' } 复制代码 也确实可以解决问题,但是本来一个对ndk版本没有强依赖的项目,现在固定在一个版本上,其他开发者也必须有这个具体版本才能正常编译运行。
  • 05.14 13:43:14
    发表了文章 2022-05-14 13:43:14

    如何为Electron应用实现一个简易的更新功能

    官方其实已经提供了几种很便捷的方案:www.electronjs.org/docs/tutori… 但是不是需要github,就是需要搭建一个服务端,因为我们的场景很小,electron只是一个壳,所以更新的需求不强烈,只是一个以防万一的功能,所以我们想寻求一个简单的方式来处理。
  • 05.14 13:38:31
    发表了文章 2022-05-14 13:38:31

    实现一个悬浮在软键盘上的输入栏

    我们要实现一个悬浮在软键盘上的输入栏(即一个悬浮栏),过程中遇到了很多问题,查阅了一些网上的文章,结果发现不少是错误的,走了一些弯路,这里就一一记录一下
  • 05.14 13:36:23
    发表了文章 2022-05-14 13:36:23

    Binder机制中的收发消息及线程池

    在阅读《深入理解android内核设计思想》的有关Binder章节的时候,发现书中有部分问题没有很清晰的描述清楚,所以这篇文章主要是针对收发消息的过程和线程池这两个知识点详细展开一下。注意本篇文章并不是介绍Binder机制,而是针对它的两个小细节深入探讨一下,所以建议大家先详细的阅读《深入理解android内核设计思想》中有关Binder章节后对照阅读本篇文章。
  • 05.14 13:33:22
    发表了文章 2022-05-14 13:33:22

    攻防:如何防止动态hook绕过jni签名校验

    攻 我们知道jni校验签名也不可靠,可以被动态hook绕过。代码如下:
  • 05.14 13:31:37
    发表了文章 2022-05-14 13:31:37

    Flutter:实现红包晃动效果

    很多app打开会有红包悬浮在某个角落,然后为了吸引注意力,会将红包晃动起来,这个效果非常简单
  • 05.14 13:30:10
    发表了文章 2022-05-14 13:30:10

    kotlin学习笔记——类、函数、接口

    1、类 类是空的可以省略大括号, 如: class A(name: String) 注意:kotlin与java的一个不同点,代码句结尾不必加“;”号
  • 05.14 13:28:23
    发表了文章 2022-05-14 13:28:23

    kotlin中学习笔记——null

    指定一个变量可null是通过在它的类型后面加?号,如 val a: String? = null 复制代码 (注意这个Int也可为空是因为在kotlin中一切都是对象,包括在java中的基本类型) 一个可null类型,没有进行检查前不能使用,如下代码会编译出错 val a: String? = null a.subString(2)
  • 05.14 13:27:28
    发表了文章 2022-05-14 13:27:28

    kotlin学习笔记——sqlite(anko)

    Anko提供了很多强大的SQLiteOpenHelper来可以大量简化代码,首先需要依赖anko的sqlite模块: compile "org.jetbrains.anko:anko-sqlite:$anko_version"
  • 05.14 13:26:02
    发表了文章 2022-05-14 13:26:02

    kotlin集合操作符——总数操作符

    关于集合的操作符,直接引用书上的内容,基本上总结的很好了。
  • 05.14 13:24:31
    发表了文章 2022-05-14 13:24:31

    c++学习笔记之数组及vector

    1、初始化 int n[10] = {1}  当初始化值比数组元素少的时候,剩下的元素被初始化为0。 int n[2] = {1, 2, 3} 当初始值比数组元素多的时候,编译时会报错。 static int n[10]  不必进行初始化,static数组会自动初始化元素。
  • 05.14 13:23:06
    发表了文章 2022-05-14 13:23:06

    c++学习笔记之模板

    1、函数模板 template void name (T ...) 其中typename也可以换成class。 (1)可以多参template<class T1, class T2> (2)模板中形参名可以不必是唯一的。 (3)如果调用了一个带用户自定义类型的模板,并且该模板用到了函数或运算符,那么这些函数和运算符必须被这个用户定义类型重载,否则运行出错 (4)如果一个普通函数和一个函数模板特化跟调用函数匹配度相同,那么这个普通函数会被调用。
  • 05.14 13:21:55
    发表了文章 2022-05-14 13:21:55

    c++学习笔记之异常

    1、异常 详细见《c++异常分类》 基类exception有一个virtual函数what,返回错误信息(构造函数设定的)。 基类exception的派生类有runtime_error(运行时错误,运行后检测)、logic_error(逻辑错误,运行前检测)和运算符抛出的异常。 运算符抛出的异常包括:bad_alloc(new抛出),bad_cast(dynamic_cast抛出),bad_typeid(typeid抛出),bad_exception
  • 05.14 13:20:17
    发表了文章 2022-05-14 13:20:17

    c++学习笔记之继承和多态

    1、public 继承 class A : public B (1)友元函数不能被继承 (2)protected成员可以被派生类和友元访问
  • 05.14 13:18:27
    发表了文章 2022-05-14 13:18:27

    c++学习笔记之运算符重载

    1、重载运算符 void operator+(....)        //重载"+"运算符 (1)如果是成员函数形式,那么必须是非static (2)使用运算符必须重载,除了“=”、“&”、“,”这三个可直接使用,也可以重载。 (3)不能重载的运算符“.”、“.*”、“::”、“?:” (4)重载不能改变运算符的优先级,不能改变结合律,不能改变运算符“元数”(操作数) (5)不能创建新运算符 (6)不能改变运算符对基本类型对象操作的含义。重载只能对用户自定义类型对象或基本类型和用户自定义类型混合使用
  • 05.14 13:17:13
    发表了文章 2022-05-14 13:17:13

    c++学习笔记之指针

    1、声明指针 如果声明多个指针,每个都必须加*,如int *aPtr, *bPtr 变量名最好以Ptr结尾,表明是指针变量 把指针初始化NULL和0是等价的
  • 05.14 13:16:16
    发表了文章 2022-05-14 13:16:16

    c++学习笔记之类

    预处理器封套: #ifndef XXX_H #define XXX_H ... class xxx{ ... } ... #endif 复制代码 如果没有文件包含此头文件,XXX_H被定义并包含这个头文件;如果已经包含,则不再定义和包含。 为了防止多次包含同一个头文件,尤其包含套包含的时候。注意命名要大写和下划线。
  • 05.14 13:14:17
    发表了文章 2022-05-14 13:14:17

    c++学习笔记之基础篇

    这个系列整理了一下学习c++的知识点,本篇简单提及一些基础的东西,涉及到一些具体的知识后面的篇章会细说。
  • 05.14 13:12:29
    发表了文章 2022-05-14 13:12:29

    c++学习笔记之输入/输出流

    1、wchar_t 区别于char,用于存储unicode字符。而char是单字节,只能存储ascii字符。 2、cin/cout/cerr/clog cerr无缓冲错误流 clog有缓冲错误流
  • 05.14 13:10:55
    发表了文章 2022-05-14 13:10:55

    Flutter入门:如何只关闭自身页面

    前几天QA给我提了一个bug,说一个弹窗总是无缘无故的自己退出,而且没有任何规律,无法准确复现。 我经过调查发现,我们有一个倒计时弹窗(在Flutter中弹窗其实也是页面),倒计时结束后关闭。但是在弹出倒计时后,由于一些业务逻辑又弹出另外一个弹窗,这时候如果倒计时结束调用pop,只会将新的弹窗关闭,而倒计时弹窗则无法关闭了。 因为这个弹窗不是必弹的,所以导致好像后一个页面是随机无故退出似的。
  • 05.14 13:09:57
    发表了文章 2022-05-14 13:09:57

    App如何防止抓包

    App安全非常重要,尤其是数据安全。但是我们知道通过Charles等工具可以对App的网络请求进行抓包,如果我们的数据没有进行加密,这样这些信息就会被清楚的提取出来,会被不法分子进行利用。保证数据安全有很多种方法,今天简单聊一聊如何通过简单几步防止抓包。
  • 05.14 13:08:55
    发表了文章 2022-05-14 13:08:55

    Flutter:浅析flutter-boost原理

    Android 之前我们了解了native和flutter的几种交互,有了这个知识就很容易理解flutter-boost原理。那么它是怎么实现的?
  • 05.14 13:07:26
    发表了文章 2022-05-14 13:07:26

    java8中LinkedHashSet是如何实现的

    LinkedHashSet是Set集合的一个实现,具有set集合不重复的特点,同时具有可预测的迭代顺序,也就是我们插入的顺序。 那么LinkedHashSet和LinkedHashMap有什么区别?它又是如何实现链表的?今天我们就从java8版本来看看LinkedHashSet是如何实现的。
  • 05.14 13:06:30
    发表了文章 2022-05-14 13:06:30

    如何延迟Fragment的导航过渡

    做应用提高用户体验是很关键的,对于用户体验来说有一件事是不能回避的,就是页面切换的过渡动画。因为后一个页面可能会加载数据,所以切换时后一个页面是空白的导致用户体验比较差。那么如果下一个页面数据加载可能很快,为了提供流畅的顶级导航过渡,可不可以等待第二个屏幕加载数据,然后再启动动画? Android中的Fragment就提供了这种功能,通过它可以推迟fragment的载入,这样在界面通过动画过渡到第二个屏幕之前,第二个屏幕上的界面元素(通常是从网络获取的图片)已做好显示准备。这便是:postponeEnterTransition()和startPostponedEnterTransition()
  • 05.14 13:05:26
    发表了文章 2022-05-14 13:05:26

    Android Jetpack:利用Palette进行图片取色

    Palette即调色板这个功能其实很早就发布了,Jetpack同样将这个功能也纳入其中,想要使用这个功能,需要先依赖库 implementation 'androidx.palette:palette:1.0.0' 复制代码 本篇文章就来讲解一下如何使用Palette在图片中提取颜色。
  • 05.14 13:03:32
    发表了文章 2022-05-14 13:03:32

    LRU——LinkedListMap的实现原理

    LRU是Least Recently Used的缩写,即最近最少使用,当超过容量时,自动删除最近最少使用的项目。 LRU在android开发中最常见的就是图片加载框架中的缓存逻辑。在java中可以利用LinkedListMap很方便的实现LRU
  • 05.14 13:02:04
    发表了文章 2022-05-14 13:02:04

    Flutter Web:获取设备信息、UA、窗口大小等

    开启web支持 首先我们要为Flutter安装web环境,通过下面命令: flutter pub global activate webdev //安装web开发环境 然后为我们的Flutter项目开启web支持,通过下面的命令: flutter config --enable-web //启动支持web flutter config --enable-macos-desktop //启动mac支持 flutter config --enable-windows-desktop //启用window支持
  • 05.14 13:00:57
    发表了文章 2022-05-14 13:00:57

    Flutter Web项目如何录制wav格式音频

    一个小需求,需要在Flutter Web项目中录音,需要通过原生Native(即js或html5)来进行处理。 而且我们的需求必须是wav格式的,经过网上查询发现使用html5自带的MediaRecorder在chrome上录制出来的格式是webm(opus),即 audio/webm;codecs=opus 复制代码 而且只支持这种格式,因为chrome解码(decode)有多种格式,但是编码(encode)只有这一种。 那么我们怎么录制wav格式?
  • 05.14 12:59:38
    发表了文章 2022-05-14 12:59:38

    Flutter Web:刷新与后退问题

    使用flutter开发web页面,在pc端使用就会面临刷新的问题。尤其是刷新时,本地变量清空导致页面问题,所以就需要考虑全局缓存的问题。
  • 05.14 12:52:42
    发表了文章 2022-05-14 12:52:42

    Flutter Web:Shadow Root问题

    在flutter1.x版本的dev分支上可以使用flutter web,但是我们在使用第三方js sdk的时候会出现问题,比如AgoraRtc、lottie等。 问题都是出现在document.getElementById,因为这些sdk中或者使用的时候需要通过这个方法获取节点来操作
  • 05.14 12:46:53
    发表了文章 2022-05-14 12:46:53

    如何实现不安装xpoedinstall激活xposed模块

    xpoedinstall及安装器,它的作用有几个:安装xposed框架、激活xposed模块、搜索模块等等 如果我们已经安装了xposed框架,或者说我们自己二次开发了这个框架,通过手动的方式安装。然后需要使用我们自己的xposed模块,这时xposedinstall的作用就只剩激活模块了,那么我们是否可以摆脱它来激活模块?
  • 05.14 12:45:29
    发表了文章 2022-05-14 12:45:29

    如何在iphone上模拟定位

    为了方便测试与位置相关的功能,苹果为开发者们提供了非常方便的模拟定位的功能。
  • 05.14 12:44:16
    发表了文章 2022-05-14 12:44:16

    Android屏幕窗口各部分超详细介绍

    目前,android屏幕上大致分成三个部分:通知栏,内容区、虚拟导航栏(NavigatorBar) 因为这三个区域引起的问题数不胜数,必须好好总结一下
  • 05.14 12:42:15
    发表了文章 2022-05-14 12:42:15

    Flutter混合开发:在已有iOS项目中引入Flutter(下)

    在android项目中添加flutter模块比较简单,因为毕竟都是google的,但是在ios中添加flutter模块有些麻烦了,我们首先参考的是官方文档 flutter.cn/docs/develo… 但是在实际过程中会遇到各种问题(当然我本身对ios开发不熟悉也造成了不小的困扰),这里结合官方的步骤和我的经验来说说整个接入过程和遇到的坑。 我的环境是Android Studio 4.0.1 + Xcode12.4 + flutter2.0.5 (mac是M1芯片,后面会提到它的影响)
  • 05.14 12:39:41
    发表了文章 2022-05-14 12:39:41

    Flutter混合开发:在已有iOS项目中引入Flutter(上)

    在android项目中添加flutter模块比较简单,因为毕竟都是google的,但是在ios中添加flutter模块有些麻烦了,我们首先参考的是官方文档 flutter.cn/docs/develo… 但是在实际过程中会遇到各种问题(当然我本身对ios开发不熟悉也造成了不小的困扰),这里结合官方的步骤和我的经验来说说整个接入过程和遇到的坑。 我的环境是Android Studio 4.0.1 + Xcode12.4 + flutter2.0.5 (mac是M1芯片,后面会提到它的影响)
  • 05.14 12:34:43
    发表了文章 2022-05-14 12:34:43

    Flutter Web:根据浏览器窗口改变布局大小

    之前我们通过flutter开发web应用,然后用electron打包成可执行文件在pc端使用,因为electron可以设置最小宽高,所以布局不会越界,但是如果直接在浏览器中打开,因为浏览器的大小无法控制,如果用户缩小浏览器会导致布局越界。根据大部分网站的经验来看,当窗口缩小到一定程度后,布局就不会再改变,反而是增加了滚动,这样就保证了布局的正确性,所以我们也打算这么做。
  • 05.14 12:33:33
    发表了文章 2022-05-14 12:33:33

    Flutter Web:图片相关及跨域问题

    在flutter web上也可以使用Image这个widget来加载显示图片。但是涉及到网络图片的时候就可能会出现问题,现象是不显示图片,控制台报错:
  • 05.14 12:32:16
    发表了文章 2022-05-14 12:32:16

    Flutter Web: 如何在页面中使用web原生组件及交互

    flutter开发经常会与原生打交道,flutter web也一样,尤其在web开发时,因为flutter web还不成熟,第三方库缺少,很多功能需要依靠web原生来实现,比如音视频,录音等等。用视频举例,需要用html和js来实现一个视频播放器,然后在flutter页面中使用这个播放器,这如何来实现?
  • 05.14 12:31:06
    发表了文章 2022-05-14 12:31:06

    json中斜杠引发的惨案

    最近遇到一个问题,一个json语句中包含了"/",但是toString之后发现与原字符串不一样了!这里将我研究的整个过程记录一下。
  • 05.14 12:29:52
    发表了文章 2022-05-14 12:29:52

    Flutter入门:如何进行Flutter Plugin开发

    新建plugin项目 首先要新建一个Flutter Plugin项目。创建Flutter Plugin项目很简单,直接使用Android Studio创建即可。创建成功后来看看项目目录,其中中lib目录下是flutter代码,android和ios则分别是两个端的plugin代码,example则是用来进行测试的,与plugin无关。 所以我们在lib、android和ios下编写代码即可。
  • 05.14 12:28:58
    发表了文章 2022-05-14 12:28:58

    flutter web:lottie jssdk报错处理

    升级到Flutter 2.0后,在使用过程中发现会报错类似NoSuchMethod: call(),导致后续的动画显示不出来。 (注意:这个问题是将渲染器改成Html Render之后出现的,不知道在CanvasKit上会不会出现) 但是报错的堆栈信息根本没用,除了知道源头是lottie.js中的triggerEvent函数
  • 05.14 12:28:00
    发表了文章 2022-05-14 12:28:00

    ByteArray转byte[]的两种方式以及HeapByteBuffer&DirectByteBuffer

    将ByteArray转byte[],大部分人第一时间会使用get函数
  • 05.14 12:26:52
    发表了文章 2022-05-14 12:26:52

    减小TabLayout高度而不影响每个tab展示的几种方法

    在Support Design库中有一个新的组件TabLayout,配合TabItem实现tab页面的形式。 但是图标和文字组合的tab的默认情况下,TabLayout中的tab太高,占据太多布局。 但是如果直接将TabLayout高度改小,很容易出现图标显示不全的情况,因为图标和字体及两者的间距没有跟着改变。 这时可以从几个方面处理:
  • 05.14 12:24:31
    发表了文章 2022-05-14 12:24:31

    非UI线程下页面处理:view的postInvalidate和post对消息处理的差异化

    我们知道view有一系列post方法,用于在非UI线程中发出一些页面处理。view还有另外一个postInvalidate方法,同样在非UI线程中发起重绘。 同样是在非UI线程向UI线程发出消息,但是这里面有很大的区别。
  • 05.14 12:23:19
    发表了文章 2022-05-14 12:23:19

    解决Electron应用中Lottie动画无法正常显示

    我们用Flutter Web开发了一个应用,通过electron进行打包成可执行文件,但是在使用时发现了一个问题,Lottie动画无法显示。 通过console的日志可以看到,提示lottie是undifine的,lottie是sdk提供的一个全局的对象,通过lottie.loadAnimation(options)可以加载显示Lottie动画,但是我们明明在index.html中引入了Lottie的js文件,而且在浏览器上也是可以正常使用的,为什么通过Electron打包后执行就失效了?
  • 05.14 09:53:01
    发表了文章 2022-05-14 09:53:01

    解决圆形进度条ProgressBar的几个问题

    Android自带的Progressbar默认就是圆形的,可以通过设置style属性 style="?android:attr/progressBarStyleHorizontal" 复制代码 这样就能变成条状进度条,如下: <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"/>
  • 05.14 09:51:23
    发表了文章 2022-05-14 09:51:23

    Android拉起系统相机拍照的两种方式及陷阱

    在Android中我们可以通过Camera Api在应用内拍照,也可以拉起系统相机进行拍照。拉起系统相机拍照有两种方式。
  • 05.14 09:31:30
    发表了文章 2022-05-14 09:31:30

    Android逆向:resource.arsc文件解析(Config List)

    resource.arsc是APK打包过程中生成一个重要的文件,主要存储了整个应用哦中的资源索引。但是这个文件是一个二进制文件,并不可读,所以本文就通过解析它的二进制内容来读懂这个文件。
  • 发表了文章 2022-05-14

    Flutter支持Windows\MacOS\Web等

  • 发表了文章 2022-05-14

    滑动速度监听VelocityTracker

  • 发表了文章 2022-05-14

    解决No version of NDK matched the requested version问题

  • 发表了文章 2022-05-14

    如何为Electron应用实现一个简易的更新功能

  • 发表了文章 2022-05-14

    实现一个悬浮在软键盘上的输入栏

  • 发表了文章 2022-05-14

    Binder机制中的收发消息及线程池

  • 发表了文章 2022-05-14

    攻防:如何防止动态hook绕过jni签名校验

  • 发表了文章 2022-05-14

    Flutter:实现红包晃动效果

  • 发表了文章 2022-05-14

    kotlin学习笔记——类、函数、接口

  • 发表了文章 2022-05-14

    kotlin中学习笔记——null

  • 发表了文章 2022-05-14

    kotlin学习笔记——sqlite(anko)

  • 发表了文章 2022-05-14

    kotlin集合操作符——总数操作符

  • 发表了文章 2022-05-14

    c++学习笔记之数组及vector

  • 发表了文章 2022-05-14

    c++学习笔记之模板

  • 发表了文章 2022-05-14

    c++学习笔记之异常

  • 发表了文章 2022-05-14

    c++学习笔记之继承和多态

  • 发表了文章 2022-05-14

    c++学习笔记之运算符重载

  • 发表了文章 2022-05-14

    c++学习笔记之指针

  • 发表了文章 2022-05-14

    c++学习笔记之类

  • 发表了文章 2022-05-14

    c++学习笔记之基础篇

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息