
Android
文章平均质量分 67
wayne214
欢迎大家关注公众号:君伟说。
展开
-
老项目也能玩转跨平台?Android原生+RN混合开发深度解析
读者可通过本篇文章深入了解,在现有原生项目基础上,集成RN功能步骤及注意事项,推荐各位阅读。原创 2025-04-21 08:43:28 · 546 阅读 · 0 评论 -
Android项目升级31版本
公司项目升级从sdk29升级至31版本。您上传的 APK 必须符合 Google Play 的。原创 2023-12-01 09:31:34 · 591 阅读 · 0 评论 -
【温故而知新】Android架构模式
Android项目工程中常用的架构模式有MVC, MVP, MVVM以及现在新出的MVI。下面一起温故而知新。原创 2023-07-04 17:45:54 · 493 阅读 · 0 评论 -
Android实现RecyclerView嵌套流式布局
Android开发中,列表页面是常见需求,流式布局的标签效果也是常见需求,那么两者结合的效果啥样呢?这篇文章简单实现一下。原创 2022-12-22 18:47:20 · 553 阅读 · 0 评论 -
最新版Android原生集成RN
现在不少应用都是采用了混合开发模式,不论是原生加RN,或是原生加Flutter,或是原生加H5。原生实现主业务线,其他部分可以借助跨平台方案开发,提高开发效率,或者实现热更新,调高业务迭代效率。下面简单介绍一下Android原生集成最新RN版本的过程。原创 2022-12-21 13:41:30 · 1261 阅读 · 0 评论 -
Kotlin协程Flow浅析
Kotlin协程中的Flow主要用于处理复杂的异步数据,以一种”流“的方式,从上到下依次处理,和RxJava的处理方式类型,但是比后者更加强大。原创 2022-11-27 10:16:55 · 1012 阅读 · 0 评论 -
【面经】安卓常见内存泄漏及处理
内存泄漏可以说伴随着我们的开发进程一直存在,为了更好的用户体验,我们需要进行相应的内存优化,下面列出的一些内存泄漏的场景能更好的帮助我们定位问题。从有一组定义为gc root的根节点到目标对象的路径,称为可达性,此类对象也就是存活对象,不可达的对象就是应该被Gc垃圾回收机制进行回收的对象.在当前应用的生命周期内不再使用的对象,依然被gc root引用,导致无法回收,既造成了内存泄漏。对于资源性对象不再使用时,应该立即调用它的close()函数,将其关闭,然后再置为null。例如Bitmap等资源未关闭会造成原创 2022-06-06 16:36:54 · 197 阅读 · 0 评论 -
Android调试新姿势
在Android开发中,不论是原生开发,亦或是ReactNative,Flutter跨平台开发,都需要进行连接真机进行调试,因为真机和模拟还是有区别的。有个必备的步骤,那就是使用数据线连接开发电脑和你的测试手机,然后开启开发者模式进行授权调试。 这时这个线就成了枷锁,不能随心所欲的把玩你的bug, 在调试过程中,在和其他同学拿着手机沟通问题时, 在和向测试同学展示bug修复问题时, 都有可能不小心把你的水杯弄倒,水撒到桌子上,撒到电脑上,又是另外的故事了。 现在Android Studio原生支持Wifi调原创 2022-06-04 18:14:54 · 920 阅读 · 0 评论 -
ReactNative你应该知道的知识点
1.与原生应用开发采用的命令式编程范式相对应,ReactNative使用的是声明式的编程范式, 比如采用JSX编写布局页面2.ReactNative的特点:组件化、单向数据流、原生组件、跨Android/iOS3.框架自有组件的通用样式:4.创建组件状态的方法:useReducer5.二进制图片占用3个字节,编码成为Base64后占用4个字节,因此Base64 图片体积比其他二进制图片体积大1/36.RN中可以增加 Pressable 组件点按事件的触发区域的方式:7.可以实现视图复用的列表组件是Recyc原创 2022-05-31 21:27:15 · 369 阅读 · 1 评论 -
面试高频之线程池
在面试中关于线程池的问题出现率还是很高的,今天就做下总结。为什么用线程池线程池提供了一种限制和管理资源(包括执行一个任务)的方式。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。这里借用《Java 并发编程的艺术》提到的来说一下使用线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以原创 2022-03-22 14:45:43 · 2834 阅读 · 0 评论 -
Android开发文本删除线效果(kotlin+SpannableString)
前言项目中难免会遇到给文本添加删除线的效果,比如下面这样的效果。方案方案一结合网上其他的文章,有如下方式:通过设置setPaintFlags// 添加删除线textview.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);//字体变清晰textview.getPaint().setFlags(Paint.ANTI_ALIAS_FLAG);//可以合并一起写为:mTextView.getPaint().原创 2021-10-13 18:12:27 · 1263 阅读 · 0 评论 -
Flutter开发listview嵌套滑动冲突问题
文章目录背景知识点shrinkWrapphysics完整代码展示(子列表)背景最近在使用Flutter进行业务开发,使用fish-redux进行页面开发中使用了ListView的嵌套,在滑动中会导致竖向滑动冲突。另外还有个问题, listview在使用的时候需要给个高度, 如果需要根据内容显示自适应高度,也需要进行处理,否则就无法展示list列表内容。知识点解决以上两个问题主要用到了Flutter组件Listview的两个属性,分别是:ScrollPhysics physics,bool sh原创 2021-09-09 22:11:58 · 3951 阅读 · 0 评论 -
Program type already present: com.alibaba.android.arouter.routes.ARouter$$Group$$route
项目正常版本迭代的过程中,进行打包测试,构建debug版本的包没有出现任何问题, 在构建release包的过程中报了如下错误:Execution failed for task ':app:mergeDexRelease'.> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > com.android.builder.dexing.DexArc原创 2021-07-27 08:31:13 · 808 阅读 · 0 评论 -
Kotlin中的作用域函数一文就够了
本篇文章主要分享一下Kotlin的作用域函数let, run, with, apply和also的用法及区别。作用域函数在执行过程中,通过lambda 表达式,形成一种临时性的作用域,可以减少部分逻辑代码的数量。文章目录上下文对象:this or itthisit返回值let函数with函数run函数apply函数also函数作用域函数如何选择takeIf与taceUnless上下文对象:this or itthisrun、with 以及 apply 通过关键字 this 引用上下文对象。因此,在原创 2021-07-18 08:31:47 · 334 阅读 · 0 评论 -
Android添加依赖ARouter报错Manifest merger failed
Android Studio依赖ARouter,点击“sysc now”按钮进行同步的时候,报错:Manifest merger failed, 解决方案如下在项目的gradle.properties文件中添加如下配置,再进行同步即可解决。android.useAndroidX=trueandroid.enableJetifier=true...原创 2021-06-21 14:56:03 · 486 阅读 · 0 评论 -
浅析Flutter生命周期
在软件开发过程中,无论是Android开发还是IOS开发中都有生命周期的概念,比如Android中Activity的生命周期,Fragment的生命周期,iOS中的ViewController也存在生命周期。Flutter中的Widget也存在生命周期,并且是通过State体现的。在Flutter中存在两种生命周期,一个是页面Widget,另一个是App。Flutter宇宙中,一切都是Widget.Widget(State)生命周期。通常是指StatefulWidget这个Widget的生命周期,先原创 2021-06-05 18:50:22 · 417 阅读 · 3 评论 -
2021安卓高频面试题
Java部分JVM虚拟机及GC垃圾回收机制GC ROOT对象有哪些?ClassLoder类的加载机制Java内存模型, volatile的作用同步锁Synchronized与ReentrantLock区别多线程,线程池JVM,DVM与ART的区别ThreadLocal使用原理String str = new String(“abc”)创建了几个对象?HashMap,LinkedHashMapArrayList,LinkedList网络部分7层或5层网络模型为什么TCP三次握原创 2021-05-21 23:21:33 · 192 阅读 · 0 评论 -
一文了解单例模式
设计模式千千万,总是单例最常见。单例模式的定义保证一个类仅有一个实例,并提供一个访问它的全局访问点。六种单例的创建方式1.饿汉式public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; }}优点:基于类的加载机制原创 2021-05-18 12:06:31 · 128 阅读 · 4 评论 -
同步锁Synchronized和ReentrantLock区别
今天简单聊聊Java中两个同步锁:synchronized 和ReentrantLock.java同学肯定对synchronized这个关键字非常熟悉,通常会用在处理同步问题中。首先,我们看一下synchronized常见的使用方式:修饰实例方法修饰类的静态方法修饰代码块使用方式下面我们分别看一下三种方法的简单实现代码修饰实例方法public class test { private int s原创 2021-04-21 19:30:20 · 643 阅读 · 1 评论 -
ReactNative自定义车牌号输入框及键盘实现
项目中用到了自定义的车牌号及键盘原创 2021-01-16 14:33:42 · 846 阅读 · 0 评论 -
ReactNative集成个推消息推送
文章目录前言集成1. 自动添加依赖2.手动添加配置1.在android/build.gradle中添加maven地址中添加配置2.android目录下,在app/build.gradle中添加如下配置3.android--> defaultConfig中添加如下配置4.在android/app/AndroidManifest.xml 的标签内添加meta-data5.在MainApplication.java的文件里添加以下信息ReactNative项目中JS调用代码前言最近项目中需要集成消息推送原创 2021-01-09 16:59:40 · 1153 阅读 · 2 评论 -
RN集成融云IM无法发送图片消息问题
发现的问题最近公司项目在使用ReactNative集成融云的IM-SDK,使用了一个前辈做的集成库, 在使用中发现了一下问题。首先发送文字消息正常的,但是发送图片消息,本地和远端都无法展示融云返回的图片, 使用的图片选择库是react-native-image-picker。开始项目中使用的是最新版本, 返回的图片地址是图片uri 是以”content“为开头的,使用此图片地址调用融云的发送图片信息接口,发送成功,但是融云返回的的remote图片地址并不能展示图片,甚是苦恼。寻找答案于是到reac原创 2021-01-07 18:51:06 · 413 阅读 · 2 评论 -
ReactNative集成融云IM打包apk后无法连接融云服务
项目中使用了融云的及时通讯解决方案,使用了第三方集成库rongcloud-react-native-imlib, 在debug模式中连接融云接收消息正常, 但是生成release包, 安装apk到手机上发现无法获取融云的历史消息,也就是没有连接成功,也是郁闷至极。通过查阅资料,找到了解决方案, 在项目的Android目录中,找到app文件夹下的build.gradle文件,修改为如下:android { ... buildTypes { release {原创 2020-12-30 19:14:11 · 390 阅读 · 0 评论 -
一行代码解决Android无法访问http网络问题
最近入职了新公司,进行新项目的开发工作, 公司的测试环境使用的http网络,打包apk,安装到手机上发现无法访问网络。特此进行记录一下,也供同行朋友们参考。解决方法:打开项目的Android目录下,在app/src/main路径下找到AndroidManifest.xml文件,在application节点下添加 android:usesCleartextTraffic=“true”有图有真相...原创 2020-12-23 18:19:33 · 3208 阅读 · 3 评论 -
RN运行项目报错:Unable to resolve module `./debugger-ui/debuggerWorker.js` from ``
今天调试demo遇到一个问题,使用react-native run-ios命令启动app,在加载bundle的时候,本地package 服务报了如下错误:报错···Error: Unable to resolve module ./debugger-ui/debuggerWorker.js from ``:None of these files exist:debugger-ui/debuggerWorker.js(.native|.native.js|.js|.native.json|.jso原创 2020-09-25 14:31:42 · 4207 阅读 · 2 评论 -
Flutter集成百度语音识别(Android端)实战
集成百度语音识别报错问题原创 2020-09-23 16:44:58 · 1467 阅读 · 1 评论 -
从源码解析Handler机制
Handler机制是面试中的常客了,今天和大家一起通过源码层面来解析一下。文章目录前提知识点最简单的应用sendMessage之后发生了什么怎么取MessageQueue中的消息面试常见问题1.Looper.loop() 为什么不会阻塞主线程2.Handler 的 sendMessageDelayed 或者 postDelayed 是如何实现的总结前提知识点Handler机制涉及到几个类: MessageQueue, Looper, Message, ActivityThread。Activity原创 2020-09-14 17:59:02 · 248 阅读 · 0 评论 -
Pod安装神策SDK报错Remote branch v2.1.3 not found in upstream origin
文章目录问题解决方法问题今日在执行项目调试,ios使用pod安装第三方依赖的时候,执行pod install报错:[!] Error installing SensorsAnalyticsSDK[!] /usr/bin/git clone https://github.com/sensorsdata/sa-sdk-ios.git /var/folders/80/2n8k46ln2bdf3xk5dkdf_ddm0000gn/T/d20200824-10173-1tsouho --template=原创 2020-08-24 18:31:53 · 1475 阅读 · 0 评论 -
一文解决RN0.58部分安卓手机text显示不全问题
最近项目开发中遇到一个Android的适配问题,同事的红米手机K20pro上项目App中部分页面上的文本显示不全,比如下面这样同事的手机升级到了最新的miui12, 默认的手机字体是小米兰亭pro,正好我这边有个小米8的测试机,前两天也升级到了最新的MIUI12系统,同样的页面在小米8上显示正常。遇到这种问题确实让人头大,怎么办?搞呗。在GitHub上react-native项目中搜索相关问题,下面是就是对相关问题的讨论issues,感兴趣的朋友可以去看看。Github相关问题:issues,发现不原创 2020-08-14 13:47:26 · 1571 阅读 · 0 评论 -
纯干货Android知识点整理(二)
本篇为第二篇整理的文章,第一篇的链接纯干货Android知识点整理(一)文章目录1.OkHttp解析2.Bitmap解析3.Window、Activity、View三者关系4.Handler机制5.APK安装包体积优化1.OkHttp解析首先 OkHttp 内部是一个门户模式,所有的下发工作都是通过一个门户 Dispatcher 来进行分发。然后在网络请求阶段通过责任链模式,链式的调用各个拦截器的 intercept 方法。其中有 2 个比较重要的拦截器:CacheInterceptor 和 Ca原创 2020-08-12 17:12:10 · 218 阅读 · 0 评论 -
纯干货Android知识点整理(一)
最近整理了一些Android中的知识点,纯干货,偷偷告诉你,这也是面试的高频面试题哦。文章目录1.解决 Android 多进程导致 Application 重复创建问题(process 造成多个 Application)2.通过 Binder 传递数据的限制3.后台启动 Activity 失效4.Android启动activity之taskAffinity5.事件分发6.自定义View7.RecyclerView缓存1.解决 Android 多进程导致 Application 重复创建问题(proces原创 2020-08-09 17:41:37 · 686 阅读 · 0 评论 -
Android注入框架ButterKnife使用解析
Android开发中使用注入框架,可减少findViewById的代码量,也能让我们的代码更加整洁,有许多著名的注入框架比如,ButterKnife,Annotation,XUtils,afinal等,最开始接触的是XUtils,后面开始接触到了ButterKnife; XUtils包含了许多模块,比如数据库操作orm,网络请求,图片及视图注入,而如果仅需要做视图注入的话BK更合适些。今天来看看ButterKnife的使用。文章目录1.添加依赖2.使用使用@BindView取代findViewByI.原创 2020-08-05 14:13:22 · 1615 阅读 · 0 评论 -
Flutter时间格式化工具
本期推荐Flutter时间格式化工具Intl文章目录添加依赖安装使用添加依赖dependencies: intl: ^0.16.1安装flutter pub get使用import 'package:intl/intl.dart';String getCurrentTime() { DateTime now = DateTime.now(); var formatter = DateFormat('yy-MM-dd hh:mm:ss'); return fo原创 2020-07-22 16:16:16 · 1326 阅读 · 0 评论 -
Flutter报错:Waiting for another flutter command to release the startup lock...
打开项目,运行flutter pub get时报错:Waiting for another flutter command to release the startup lock...解决方案:打开flutter的安装目录,找到flutter/bin/cache/lockfile文件,删除即可进入flutter的安装目录,执行命令:rm ./flutter/bin/cache/lockfile。觉得文章不错的,给我点个赞哇,关注一下呗!技术交流可关注微信公众号【君伟说】,加我好友一起探讨原创 2020-07-20 17:07:09 · 763 阅读 · 0 评论 -
推荐7个Flutter重磅开源项目!
现在跨平台开发技术的发展可谓如火如荼,而跨平台中的双雄则是ReactNative和Flutter。而由Google推出的Flutter目前的发展更可谓是如日中天,大有一统各端开发的架势,以此给大家整理了一个优质的Flutter开源项目,帮助大家学习Flutter开发。1Flutter仿携程App(1)应用截图:(2)实现功能及特性实现首页、搜索、旅拍、我的四大模块;实现网络图片本地缓存;旅拍模块实现瀑布流布局;接口数据抓取携程H5端;集成友盟数据统计;(3)项目结构:依赖:azlis原创 2020-07-15 10:42:52 · 18072 阅读 · 0 评论 -
ReactNative0.63正式版发布:LogBox
今天ReactNative官网发布了0.63版本,距离上一个版本0.62已经过了差不多将近4个月的时间了,我在上一篇文章中也提到了0.62的更新内容一篇文章带你了解ReactNative0.62更新内容。此次0.63版本的更新主要是提供了一个LogBox(日志盒子),一个全新设计的日志系统,方便开发定位开发中遇到的问题,请大家通过本篇文章来了解一下吧。文章目录LogBoxPressable原生平台Color(PlatformColor, DynamicColorIOS)不再支持iOS9及Node.js原创 2020-07-11 16:56:12 · 3197 阅读 · 0 评论 -
React Native文件读写操作(更新)
最近公司项目要求进行定时上传位置信息,及埋点,因为使用的是RN开发,一开始就是想到在Android和Ios原生里进行操作。在原生里面实现了定时任务,Android里面使用的是broadcastReceive + service + timer实现了。现在需要生成一个日志文件,一开始想在原生里面进行实现文件的读写。后来查找相关资料,发现了一个不错的第三方插件,react-native-fs,现在记录一下,集成步骤及简单的文件读写操作。插件地址:https://github.com/itinance/re原创 2020-06-11 17:02:54 · 3979 阅读 · 0 评论 -
ReactNative项目升级避坑指南
https://reactnative.cn/docs/upgrading通过官网提供的Upgrade Helper工具来帮助我们更好的完成升级工作。debug遇到的问题:Unable to resolve module ./debugger-ui/debuggerWorker.js from解决方案:watchman watch-del-allreact-native start --reset-cache...原创 2020-05-23 18:27:49 · 1421 阅读 · 0 评论 -
Flutter开发常用第三方插件持续更新,不重复造轮子
2020.5.20整理Bilibili开源的视频播放组件,fijkplayr 是基于 ijkplayer 封装的 flutter 媒体播放器,开箱即用,无需编译 ijkplayerfijkplayer加载动画库flutter_spinkit网络请求库,dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等…Dio图片缓存框架cached_network_image轮播组件,flutt原创 2020-05-20 18:51:23 · 868 阅读 · 0 评论 -
React Navigation5.0系列四:Nesting navigators(嵌套导航)
此文章为ReactNavigation导航库5.0版本的第4篇,前几篇系列文章如下:文章目录创建需要的页面创建三个对应的导航器实例创建底部导航路由,采用系列二文章代码堆栈(Stack)与Tab嵌套Stack Navigator, Tab Navigator与Drawer Navigator综合嵌套传递参数嵌套导航的最佳实践其他问题创建需要的页面···// 设置页面const Settin...原创 2020-05-04 19:01:40 · 1142 阅读 · 2 评论