BennuC_社区达人页

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

勋章 更多

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

成就

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

我关注的人 更多

技术能力

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

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

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

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

2022年05月

  • 05.13 15:17:27
    发表了文章 2022-05-13 15:17:27

    Swift学习笔记——新建项目

    在xcode菜单中选择 new -> project -> single view app 点击next在弹出窗中填写项目名称 这里languge有可以选择object-c或swift作为项目语言。这里我们学习swift,所以选择swift。 如果language选择swift,下面的user interface可以选择swiftUI和storyboard。 SwiftUI是2019 年 WWDC 大会上,苹果在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框架,与flutter类似,是用代码编写页面,支持快速预览。
  • 05.13 15:16:09
    发表了文章 2022-05-13 15:16:09

    Swift:SwiftUI中MapKit的使用体验

    ios中可以直接使用苹果官方提供的map——MapKit。在SwiftUI中如何使用MapKit网上有也有不少文章,但是大部分不详细,大部分只是简单的展示出地图。所以本文来详细的讲解一下如何使用MapKit的各项功能。
  • 05.13 15:14:22
    发表了文章 2022-05-13 15:14:22

    自定义Toolbar的一些小技巧

    1、改变Toolbar高度(解决图标不垂直居中) 背景:实际使用中,toolbar默认高度有些大,会挤压内容。想将toolbar高度改小,将layout_height从wrap_content改为固定值。 情况:toolbar的layout_height比默认高度小的时候,发现标题是居中的,但是两侧的图标不垂直居中而偏下了 调查:网上有很多方法,基本都是无效的。甚至有人利用反射直接修改图标的imageview的gravity,非常复杂且右侧图标无法实现。
  • 05.13 15:12:54
    发表了文章 2022-05-13 15:12:54

    Vue 路由router的两种模式

    在vue中,路由router可以有两种模式可选:hash和history。设置方式就是设置Router的mode属性
  • 05.13 15:11:02
    发表了文章 2022-05-13 15:11:02

    解读ImageView的wrap_content和adjustViewBounds的工作原理

    ImageView是android开发过程中经常会使用的一种组件,由于android屏幕碎片化的问题,有时候我们无法设定一个具体的宽高。比如说width是match_parent的,这时候我们还想让图片在宽度完全填充并能正常显示,我们直接会想到将height设置为wrap_content。但是用过的同学都知道ImageView的实际区域要大于图片区域
  • 05.13 15:08:58
    发表了文章 2022-05-13 15:08:58

    Android中使控件保持固定宽高比的几种方式

    我们在android开发过程中可能会遇到一种情况,一个组件需要保持固定的宽高比,但是组件本身大小却不定。比如我们需要让一个组件宽度与屏幕宽度一致,这样就无法确定宽度。那么如何让控件保持固定宽高比?有几种方法供大家选择。
  • 05.13 15:07:22
    发表了文章 2022-05-13 15:07:22

    Android逆向:二进制xml文件解析(Start Tag Chunk)

    在Android中,xml文件经过编译后都是不可读的二进制文件。今天我们来解析一下这个二进制文件的内容,看看如何与我们的源码进行对应。
  • 05.13 15:05:11
    发表了文章 2022-05-13 15:05:11

    Flutter说:详解生命周期、状态管理及局部重绘(下)

    生命周期 flutter的生命周期其实有两种:StatefulWidget和StatelessWidget。 这两个是flutter的两个基本组件,名称已经很好表明了这两个组件的功能:有状态和无状态。
  • 05.13 15:03:05
    发表了文章 2022-05-13 15:03:05

    Flutter说:详解生命周期、状态管理及局部重绘(上)

    生命周期 flutter的生命周期其实有两种:StatefulWidget和StatelessWidget。 这两个是flutter的两个基本组件,名称已经很好表明了这两个组件的功能:有状态和无状态。
  • 05.13 14:55:21
    发表了文章 2022-05-13 14:55:21

    Flutter:Navigator2.0介绍及使用

    我们学习flutter一开始接触的路由管理就是Navigator1.0,它非常方便,使用简单
  • 05.13 14:52:48
    发表了文章 2022-05-13 14:52:48

    来看看Android获取定位到底有几种方式?

    目前,移动端大致通过三种方式来进行设备定位:GPS、基站、wifi。本文就详细的讲解一下这几种定位方式和实现方法。
  • 05.13 14:49:45
    发表了文章 2022-05-13 14:49:45

    Android App Bundle:动态功能模块

    自 2021 年 8 月起,Google Play 将开始要求新应用使用 Android App Bundle 进行发布。该格式将取代 APK 作为标准发布格式。虽然这个政策目前还无法影响到国内应用,但是作为Android开发者,对于新的动态还是要有一定的认识。本文并不是介绍Android App Bundle,因为它不是新的事物,相关的文章也有很多了,本文重点介绍的是Android App Bundle中“动态功能模块”的实际应用。
  • 05.13 14:46:47
    发表了文章 2022-05-13 14:46:47

    Jetpack:使用 ActivityResult 处理 Activity 之间的数据通信

    本文先介绍ActivityResult的基本使用,最后会通过源码来探讨背后的原理。 在Android中,我们如果想在Activity之间双向传递数据,需要使用startActivityForResult启动,然后在onActivityResult中处理返回,另外申请权限也是类似的步骤。 但是这样的处理方式会让我们的代码变得非常复杂,并且也无法保证在 Activity 发送或接收数据时参数的类型安全。
  • 05.13 14:42:18
    发表了文章 2022-05-13 14:42:18

    为RecyclerView添加下拉刷新功能

    在之前的文章中,我们实现了带有header和footer功能的WrapRecyclerView。 现今App中列表的下拉刷新和上拉加载已经是一种习惯了,这两个操作也确实方便很多。 为RecyclerView添加这个功能可以通过多种方法,这里我选用了一种简单的做法。基于pulltorefresh这个库。
  • 05.13 14:40:52
    发表了文章 2022-05-13 14:40:52

    实现RecyclerView中remove飞出的效果

    我们经常会遇到在一个list中删除一条数据,这时候一般会有一个飞出的动画效果 在RecyclerView中可以通过setItemAnimator函数设置一个ItemAnimator,实现item的add、remove、change等动作的动效。下面我们就通过ItemAnimator来实现上面的效果。
  • 05.13 14:38:53
    发表了文章 2022-05-13 14:38:53

    一步步自定义下拉组件spinner

    spinner就是下拉选择组件,系统自带的spinner使用起来非常方便,首先定义一个array(strings.xml),如下: <array name="grade"> <item>一年级</item> <item>二年级</item> <item>三年级</item> <item>四年级</item> <item>五年级</item> <item>六年级</item> </array> 复制代码
  • 05.13 14:36:33
    发表了文章 2022-05-13 14:36:33

    Android魔术系列:一步步实现淹没、展开效果

    本篇文章我们实现一个简单的动画效果,目的是熟悉和加深Android属性动画的使用。另外这次我们使用kotlin来进行开发,不熟悉kotlin的同学可以自行简单了解一下kotlin语法,基本应该能看懂 我们知道,android的View Animation动画可以移动、放大等效果,但是不能改变布局的实际属性。比如使用scaleAnimation使布局缩放,但是布局的实际大小并没有改变,所以会遮盖旁边的布局,并不是把布局撑开,挤压其他布局。 作者:BennuCTech 链接:https://juejin.cn/post/7044701115316699143 来源:稀土掘金 著作权归作者所有。商
  • 05.13 14:34:51
    发表了文章 2022-05-13 14:34:51

    Android魔术系列:一步步实现滑动折叠列表

    这个效果是多年前做电商的时候的一个需求,当时是模仿一个叫喵街的app(也不知道现在还在不在了)
  • 05.13 14:28:41
    发表了文章 2022-05-13 14:28:41

    你都知道么?Android中21种drawable标签大全(下)

    我们在drawable目录下可以创建很多自定义的资源,其中用的最多的应该就是selector和shape。目前在Android中有21种drawable标签,了解和利用这些标签对我们的开发有很大的帮助。这个文章我们对这21种标签做一个介绍,让大家有一个印象。 本文中有些资料取自网上,当时记录在笔记中,但是由于时间久远,忘记出处了。
  • 05.13 14:24:30
    发表了文章 2022-05-13 14:24:30

    你都知道么?Android中21种drawable标签大全(上)

    我们在drawable目录下可以创建很多自定义的资源,其中用的最多的应该就是selector和shape。目前在Android中有21种drawable标签,了解和利用这些标签对我们的开发有很大的帮助。这个文章我们对这21种标签做一个介绍,让大家有一个印象。 本文中有些资料取自网上,当时记录在笔记中,但是由于时间久远,忘记出处了。
  • 05.13 13:42:34
    发表了文章 2022-05-13 13:42:34

    一文搞懂RSA算法原理及简单实现

    RSA算法是最重要的算法之一,它是一种非对称加密,是目前最有影响力的加密方式之一。这篇文章我们通过实现一种简单的RSA加密来探究它的原理。
  • 05.13 13:40:20
    发表了文章 2022-05-13 13:40:20

    实现一个带有header和footer功能的RecyclerView

    这是我之前一篇老文章了,重新整理了一下在掘金发一下,大家可以参考参考。 RecyclerView是Android 5.0版本引入的一个新的组件,目的是在一些场景中取代之前ListView和GridView,实现性能更优的解决方案。同时RecyclerView的灵活性让它可胜任更多的场景。关于RecyclerView的使用有太多的文章了,大家可以自行搜索。 我们知道RecyclerView很灵活,灵活到很多功能需要我们自己实现,比如ListView和GridView中最常用的Item点击事件。所以在使用了几次后,我准备自己封装一个WrapRecyclerView,实现一些非常常用的功能。
  • 05.13 13:37:17
    发表了文章 2022-05-13 13:37:17

    Android魔术系列:一步步实现百叶窗效果

    本篇是基于AnimationListView框架的,这个框架在上一篇中详细的讲解了,建议阅读本篇前先熟悉 《Android魔术系列:一步步实现对折页面》。 在上一章中我们实现对折的效果同时实现了一个AnimationListView的框架,在这个框架下我们可以实现很多效果。 本篇文章我们就在这个框架下实现一个百叶窗的效果
  • 05.13 13:34:26
    发表了文章 2022-05-13 13:34:26

    Android魔术系列:手把手教你实现水晶球波浪进度条

    本篇文章讲解如何实现一个水晶球波浪进度条
  • 05.13 13:28:20
    发表了文章 2022-05-13 13:28:20

    Android魔术系列:一步步实现对折页面

    这是很久之前的一篇文章了,最近有人提到了就想起来了,正好在这里还没发布过,就重新整理一下发出来吧。这个系列也搁置了很久了,看看能不能重新启动起来。 本篇文章主要去实现一个对折页面的效果,主要来学习Android中的截屏、Bitmap处理及canvas绘制这些知识。
  • 05.13 12:59:49
    发表了文章 2022-05-13 12:59:49

    mac上搭建vue环境及webstorm新建vue项目

    安装nodejs和npm 这个就不细说了,网上有很多相关资料。 注意,如果npm版本低可能不行,升级npm使用命令: sudo npm install -g npm 查看npm版本使用命令 npm -v
  • 05.13 12:58:23
    发表了文章 2022-05-13 12:58:23

    实现一个在JNI中调用Java对象的工具类,从此一行代码就搞定!

    我们知道在jni中执行一个java函数需要调用几行代码才行,如 jclass objClass = (*env).GetObjectClass(obj); jmethodID methodID = (*env).GetMethodID(objClass, methodName, methodSig); jobject result = (*env).CallObjectMethod(obj, methodID, ...); 这样使用起来很不方便,尤其当需要大量的调用java函数就会产生大量的上述代码,由此我产生了一个开发封装这些操作的工具类,以便大量简化我们的开发。 作者:Benn
  • 05.13 12:56:28
    发表了文章 2022-05-13 12:56:28

    c++文件中jni库找不到报红

    本来没有问题的一个项目,有一天打开后c++文件中jni库都报红,但是并不影响运行,但是非常影响开发。
  • 05.13 12:55:38
    发表了文章 2022-05-13 12:55:38

    使用SearchView报错java.lang.UnsupportedOperationException: Failed to resolve ...

    SearchView是appcompat-v7中的一个组件,能够更快的实现一些基本的功能 但是在布局中使用android.support.v7.widget.SearchView,打开该页面会crash,查看错误是加载布局出问题了
  • 05.13 12:54:07
    发表了文章 2022-05-13 12:54:07

    Android事件分发溯源详解

    前两天华仔给我出了一道难题,我们俩研究了小半天,借着这个契机正好回顾了一下Android事件分发的相关知识点,于是有了这篇文章。 Android事件分发机制大家都非常熟悉,大部分文章对这个过程的描述都是开始于Activity,但是事件是怎么传到Activity的? 这里就涉及到几个重要的部分:Window,WMS,ViewRoot和DecorView。 如果要理解事件分发的源头,就需要搞明白他们之间的关系,所以我们先来看看它们到底有什么关系?
  • 05.13 12:50:02
    发表了文章 2022-05-13 12:50:02

    如何实现一套可切换的声网+阿里的直播引擎

    小盒的直播业务一开始是打算用两套引擎切换使用的,所以需要封装一下。而且因为声网和阿里的直播sdk的官方文档都不是很全面,甚至有的还有错误(可能是文档没及时更新)导致无法正常运行,接入时问题多多,所以同时记录一下的接入过程中的问题及处理。
  • 05.13 12:46:22
    发表了文章 2022-05-13 12:46:22

    浅析WebRtc中视频数据的接收和渲染流程

    本文基于PineAppRtc开源项目github.com/thfhongfeng… 因为一个需求,我们需要将WebRtc发送过来的视频流中转出去,所以就研究一下WebRtc是如何接收视频数据并进行处理渲染的,于是有了这篇文章。
  • 05.13 12:44:54
    发表了文章 2022-05-13 12:44:54

    简单聊聊Glide的内存缓存

    glide的内存缓存有两级:LruCache、ActiveResources 其中LruCache老生常谈了,这里就不细说了。 ActiveResources实际上内含一个HashMap,Map中value则是资源的弱引用。 那么这两级是如何工作的?
  • 05.13 12:43:15
    发表了文章 2022-05-13 12:43:15

    Linux(centos7)安装nginx并配置代理

    本文介绍一下如何在linux下安装nginx,并配置反向代理,使我们可以通过子域名访问不同的接口。
  • 05.13 12:41:41
    发表了文章 2022-05-13 12:41:41

    浅析WebRtc中视频数据的收集和发送流程

    本文是基于PineAppRtc开源项目github.com/thfhongfeng… 因为一个需求,我们需要将一个视频流通过WebRtc发送出去,所以就研究一下WebRtc是如何采集视频数据并进行处理发送的,于是有了这篇文章。
  • 05.13 12:39:54
    发表了文章 2022-05-13 12:39:54

    浅析webrtc中音频的录制和播放流程

    本文是基于PineAppRtc项目github.com/thfhongfeng… 在webrtc中音频的录制和播放都是封装在内部,一般情况下我们也不需要关注,直接使用即可。 但是最近有一个需求,需要将我们自己的数据进行传输,所以就需要将这些接口暴露出来使用。所以就需要去研究一下它的源码,就有了这篇文章。
  • 05.13 12:37:59
    发表了文章 2022-05-13 12:37:59

    如何向前一个Fragment回传信息?

    我们使用Activity的时候,可以通过startActivityForResult来启动一个新的Activity,然后在新的Activity中可以用setResult来向前一个Activity回传一些结果信息,前一个Activity会在onActivityResult中得到这个信息。 那么当我们使用Fragment的形式来作为页面的时候呢?我们知道可以使用setArguments向后面的Fragment传递信息,但是如何回传结果信息? 作者:BennuCTech 链接:https://juejin.cn/post/7033953422357299231 来源:稀土掘金 著作权归作者所有。商
  • 05.13 12:36:58
    发表了文章 2022-05-13 12:36:58

    实现一个通用的中英文排序工具

    利用Collator类可以轻松实现排序,但是我们可能有各种model都需要进行排序,这样就会有一个问题,如果单独为每个model写一段排序代码,代码重复量很大。 所以我打算写一个通用的工具,使用泛型+注解+反射的方式来解决。
  • 05.13 12:35:14
    发表了文章 2022-05-13 12:35:14

    Android中的资源复用小技巧

    做了很多项目,发现每个项目里都有大量的相似图标,比如每个颜色一种、每个角度一种(左箭头、右箭头)等等,虽然这些图标很小占用不了太多资源。但是当我们需要change的时候就得一个个去替换,其实在android里有很多小技巧可以让这些资源进行复用,减少体积的同时也可以使项目结构更加清晰。 这里总结的一些比较常用的复用,包扩:自适应、变色、旋转、阴影、组合、透明度、剪裁、留白等
  • 05.13 12:33:24
    发表了文章 2022-05-13 12:33:24

    linux(CentOS)下安装mongodb

    在mongodb的官网中有linux各个系统的安装配置说明 docs.mongodb.com/master/admi… 本文以CentOS(RedHat)为例 docs.mongodb.com/master/tuto… 结合官方说明,并加以补充。
  • 05.13 12:31:35
    发表了文章 2022-05-13 12:31:35

    mac下安装配置mongodb

    在mongodb的官网中有mac环境的安装配置说明 docs.mongodb.com/master/tuto… 在mac上安装mongodb有两种方式: (1)使用Homebrew来安装,如果电脑中有Homebrew,安装起来就比较简单,如果没有可以安装一个,以后安装其他的也用的到。 (2)如果电脑没有Homebrew且不想安装,那么直接用压缩包的形式安装也可。 我比较懒不想安装Homebrew,所以本文就介绍以如何压缩包的形式安装并配置mongodb,本文会在官网教程的基础上做了一些说明和补充。
  • 05.13 12:29:44
    发表了文章 2022-05-13 12:29:44

    Android事件分发机制之ACTION_DOWN

    Android的事件分发机制也是老生常谈了,这篇文章并不是笼统的介绍这个机制,而是针对ACTION_DOWN这个事件探讨相关的细节。
  • 05.13 12:27:40
    发表了文章 2022-05-13 12:27:40

    说一说Android事件分发中的requestDisallowInterceptTouchEvent

    我们知道在事件分发过程中是存在一个拦截机制的 onInterceptTouchEvent 当它返回true则不向下分发事件,否则向下分发。 但是在这个过程中,还有一个参与者:requestDisallowInterceptTouchEvent,这个函数直接影响事件的拦截。我们今天就来说一说这个这个函数是如何影响事件分发的。
  • 05.13 12:25:50
    发表了文章 2022-05-13 12:25:50

    解决Webview加载不完全导致部分js无效

    问题出现 有两种情况: 一种情况是打开activity时webview开始加载页面,但是发现加载了一部分后就停止了,余下的一直不再加载。但是当关闭这个activity时发现webview又继续加载了。 第二种情况是webview正常加载,但是进行操作时发现有些操作没有反应。比如接入支付宝国际sdk,未装支付宝app而使用h5页面时出现点击无反应的情况。
  • 05.13 12:23:58
    发表了文章 2022-05-13 12:23:58

    部署nodejs项目到服务器的一些总结

    安装nodejs 首先在服务器上安装nodejs并配置环境,这个可以参考官方的文档,就不细说了
  • 05.13 12:20:53
    发表了文章 2022-05-13 12:20:53

    mongodb如何快速进行版本升级

    因为3.2内存设置的一些问题,需要升级到3.4,网上查了一下mongo不能跨版本升级,所以只能3.2先升级到3.4,再往上升级。 目前3.4足够我使用,所以升级到3.4就可以了。但是网上升级都比较复杂,因为都是大系统,而我只是一个小系统,单一的服务和数据库。所以网上的文章基本没有,我参考了一些和官网的一些,总结了简单的升级过程。 文章中的系统环境是CentOS
  • 05.13 12:17:24
    发表了文章 2022-05-13 12:17:24

    浅析在公众号中使用弛声sdk为什么上传解析慢

    最近在开发语音评测功能的时候,发现在公众号中使用弛声sdk进行录音评测的时候,录音结束后到返回评测结果比较慢,在做小程序相关功能的时候则明显快多了。那么这里面有什么不同么?为什么公众号sdk这个过程耗时更长?
  • 05.13 12:11:44
    发表了文章 2022-05-13 12:11:44

    mongo占用内存过大解决方案

    自己有一个测试用的服务器,配置很低。年前出现几次问题,重启后就好了也就没注意。后来越来越频繁就调查了一下,发现重启后内存就一直增长直到接近100%。使用ps aux查看cpu和内存使用情况,发现mongo占用了大部分的内存,这是什么情况?
  • 05.13 12:09:52
    发表了文章 2022-05-13 12:09:52

    安装使用Frida在Android上进行hook

    我们对Android应用进行hook最常用的就是Xposed,它相对来说更加完善,而且有强大的社区和丰富的插件。而Frida则于Xposed不同,它是一款轻量级的Hook框架,可用于多平台,相同的是它依然需要root环境。本文就以Android为例来详细说说如何安装并使用它。
  • 05.13 12:04:36
    发表了文章 2022-05-13 12:04:36

    如何发布Android Library到maven私有仓库

    在我们的项目架构中,一定存在一些基础的模块,这些模块可以在多个app上通用,这种情况我们一般会将这些模块封装成Android Library统一维护,并上传到仓库方便其他小组使用。仓库可以选择如mavenCentral这类公开的仓库,但是我们一般选择搭建自己的maven私有仓库,比如:Sonatype Nexus。本文就一步步的教大家如何将Android Library发布到maven私有仓库。
  • 发表了文章 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++学习笔记之基础篇

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