![](https://img-blog.csdnimg.cn/0611319e41894f978badb177cf046900.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android
文章平均质量分 69
Android
阿pin
为人民服务
展开
-
Android随笔-VPN判断
Android中判断当前网络是否非VPN /** * 判断当前网络是否为VPN * @param context * @return */ public static boolean hasVPN(Context context) { // 查询网络状态,被动监听网络状态变化 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(C原创 2023-08-05 21:27:22 · 2151 阅读 · 1 评论 -
lifecycleScope Unresolved reference
导入了lifecycle.lifecycleScope,但是在activity中使用lifecycleScope报错出现Unresolved reference找不到引用。Activity中无法使用lifecycleScop,将其改成继承AppCompatActivity()即可解决报错问题。代码中的activity继承Activity。原创 2023-08-05 21:23:17 · 692 阅读 · 0 评论 -
You need to use a Theme.AppCompat theme (or descendant) with this activity
1、若Activity继承的是AppCompatActivity,可以在添加主题或修改原来的主题为AppCompat主题。2、 若Activity继承AppCompatActivity,条件允许的,可将其改成继承Activity。原创 2023-08-05 21:20:22 · 276 阅读 · 0 评论 -
Android随笔-Binder
Binder是客户端与服务端进行通信的媒介,当bindService的时候,服务端会返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端就可以获取服务端提供的服务或数据,这里的服务包含普通服务和AIDL的服务。Binder做为Android中核心机制,在Android中用于跨进程通信,Activity,Service等组件相互通信都是先和AMS通信,然后通过。一种虚拟的物理设备,设备驱动为/dev/binder,该通信方式在Linux中没有。Binder是一种进程间的通信机制。原创 2022-10-08 09:46:29 · 330 阅读 · 0 评论 -
Android随笔-IPC
类型优点缺点场景Bundle简单易用数据类型有限,数据大小有限四大组件间的通信AIDL支持一对多并发,支持实时通信使用复杂,需要处理好数据同步问题一对多且可以远程调用服务Socket功能强大,可网络传输,支持一对多并发实时通信使用繁琐网络数据交换Messager支持一对多串行,支持实时通信,功能一般不支持远程调用另一个进程的服务,并发难以处理,只支持Bundle 支持的数据类型无并发,串行,且不是远程调用服务文件共享简单不适合高并发,没有办法做到实时通信。原创 2022-09-07 17:15:58 · 799 阅读 · 0 评论 -
Android随笔-Serializable和Parcelable
序列化与反序列化是Android中进程间通信常用的手段之一,Serializable和Parcelable都可以实现对象的序列化和反序列化,Serializable是Java提供的,属于统一接口,而Parcelable是Android提供的,属于Android特有的。原创 2022-09-07 10:48:30 · 657 阅读 · 0 评论 -
Android随笔-指纹识别
指纹识别错误时,系统都会给出响应的错误码和错误信息,比如:没有预先录入指纹,设备不支持等等。指纹识别成功后继续下一步操作。只有执行该行代码才会出现相应的指纹识别页面,若之前没有录入指纹,或设备不支持等会直接给出错误信息,但不会出现指纹识别页面。其实就相当于Dialog,但是样式不能动,只能修改其中指定位置的样式,不同手机指纹识别的页面不一样,但文字部分都有的。3. 定义识别回调。原创 2022-09-06 08:45:00 · 391 阅读 · 0 评论 -
Android随笔-线程池
ThreadPoolExecutor原创 2022-09-06 08:45:00 · 141 阅读 · 0 评论 -
Android随笔-AsyncTask
AsyncTask对象必须在主线程创建。一个AsyncTask对象只能执行一次,多次调用execute方法回报错。执行方法 execute必须在主线程中调用。程序中不建议直接调用AsyncTask中的方法,调用execute回自动执行的。execute执行串行任务。executeOnExecutor可执行并行任务。使用ThreadPoolExecutor线程池进行任务执行。使用Handler进行线程切换。AsyncTask不适合特别耗时的后台任务。原创 2022-09-05 08:45:00 · 172 阅读 · 0 评论 -
Android随笔-ClassLoader
任何一个Java程序都有一个或多个class,程序运行时,需要将class文件加载到JVM中才可以使用,负责加载class文件的就是ClassLoader。每一个Class对象内部都有一个classLoader字段来标记该对象应该由哪一个ClassLoader加载。..代码中的ClassLoader就是本文要概述的类加载器。原创 2022-09-01 18:46:58 · 491 阅读 · 0 评论 -
Android随笔-ViewPager2
Android随笔-ViewPager2与TabLayout的使用原创 2022-08-31 17:24:21 · 1559 阅读 · 0 评论 -
Android随笔-虚拟机
Android开发虽然基于Java,但是有自己的虚拟机,Android应用程序运行在ART/Dalvik虚拟机上,并非Java虚拟机。Android虚拟机其实也算是Java虚拟机,两者大部分特性是相同的,主要不同在于执行文件和执行指令集。...原创 2022-08-30 19:24:17 · 1111 阅读 · 0 评论 -
Android随笔-JNI
JNI:Java Native Interface,即Java本地接口,使Java与其他类型的语言进行交互,和C/C++交互的比较多。JNI属于Java的一部分,是JDK的组成部分,和Android关系不大,但是Android中核心的业务或高性能的功能都是C/C++开发的,比如游戏渲染、音视频编解码等,所以对于Android开发,JNI也是需要了解的。Android中并不是直接和C/C++打交道,是和.so(动态库),.a(静态库)文件打交道。...原创 2022-08-15 19:15:11 · 746 阅读 · 2 评论 -
Android随笔-Unable to add window -- token null is not valid;is your activity running
描述进入App页面进行网络加载数据,需要显示loading的时候,出现android.view.WindowManager$BadTokenException: Unable to add window --token null is not valid; is your activity running?问题。分析mLoadingKProgressHUDView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.view原创 2022-05-17 09:33:13 · 882 阅读 · 0 评论 -
Android随笔-RecyclerView实现拖拽换位功能
概述RecycleView除了有强大的列表功能外,自身还带有Item拖拽和滑动功能,对于有这方面需求的开发来讲,可以节省不少时间。原创 2022-05-13 14:03:12 · 3657 阅读 · 1 评论 -
Android随笔-Room简单使用
Android随笔-room简单使用Room用于数据持久化,使用简单,对SQL不了解也可以快速使用,但暴露出来的api有限,遇到复杂的数据还需使用SQL。Room本身性能并无特别强大之处,但是在Androidx中配合了Lifecycle,可以感知生命周期是其他数据库无法比拟的;同时搭配WorkManager使用可以实现非即时(至少15分钟之后),且一定会实现的任务(APP没有被删除的情况下)(目前仅限于Google pixel)。本文只对Room的简单使用进行阐述,不涉及Lifecycle等其他内容。原创 2022-05-11 16:18:47 · 1610 阅读 · 0 评论 -
Android随笔-AAPT: error: resource android:attr/lStar not found.
问题描述S:\AndroidGradle\caches\transforms-3\9b83bb143dbaaaf608d4ff8def2d618a\transformed\core-1.7.0\res\values\values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found.原创 2022-04-25 15:59:03 · 5732 阅读 · 2 评论 -
Android随笔-RelativeLayout代码中控制子View的位置
Android随笔-RelativeLayout代码中控制子View的位置原创 2022-04-20 11:26:22 · 3769 阅读 · 0 评论 -
Android随笔-LongClick时长有多长
描述最近听见有人争论长按的时长有多长,有人说是400毫秒,有人说是500毫秒。其实两种说法都对,AndroidSDK版本不同,时长也不一样。验证长按点击事件: new View(this).setOnLongClickListener(v -> false);点击事件执行时都在MotionEvent.ACTION_DOWN时,也就是手指按下时。长按点击事件其实就是一种延时操作。 case MotionEvent.ACTION_DOWN:原创 2022-04-20 10:32:00 · 1740 阅读 · 0 评论 -
Android随笔-include、merge、ViewStub
Android随笔-merge、include、viewStub原创 2022-04-15 15:24:03 · 2704 阅读 · 0 评论 -
Android随笔-getLayoutParams出现空指针
代码中创建布局,设置组件属性,调用getLayoutParams出现空指针问题原创 2022-04-15 08:00:00 · 1121 阅读 · 0 评论 -
Android随笔-EventBus多次接收消息
Fragment中嵌套Fragment,且被嵌套的Fragment是复用的,点击其中item后进入详情,返回后需要回传数据并刷新列表。由于是Fragment之间的相互嵌套,不方便使用Intent返回数据,也不方便使用callback回调来返回数据,所以选择了使用EventBus发送消息,但是发现在列表中使用EventBus发送消息后,Fragment中接收消息的方法会执行多次。发送消息: EventBus.getDefault().post(new TestEvent(2022030原创 2022-03-17 09:00:00 · 1412 阅读 · 0 评论 -
Android随笔-蓝牙
Android蓝牙原创 2022-02-22 19:15:55 · 756 阅读 · 0 评论 -
Android随笔-真机调试时无法直接启动应用
描述真机调试时,提示Launch succeeded,且Install successfully finished,但是应用并没有被打开。解决方案检查MainActivity的export是否为true,默认情况下export为true,有时为了防止应用被其他应用组件启动,会将export设为false,此时应用只能由具有相同用户ID的相同应用程序或应用程序的组件启动。...原创 2022-02-17 10:06:07 · 3650 阅读 · 0 评论 -
Android随笔-main
Android中main函数在哪里?原创 2022-02-11 09:31:19 · 764 阅读 · 0 评论 -
Flutter中十六进制数组转换为十进制
Flutter中十六进制数组转换为十进制原创 2021-07-15 17:32:57 · 1452 阅读 · 1 评论 -
再谈鸿蒙Service
鸿蒙由于分布式的原因,Service占的比重要远远比Android的Service比重要重的多。鸿蒙Service是Ability的一种,使用方法和Ability差不多,同样也分本地和远程,本文主要对Service的创建和使用作简单阐述。...原创 2021-06-15 10:06:39 · 917 阅读 · 0 评论 -
Android与Flutter混合开发,Android二次进入同一Flutter页面,Flutter没有刷新
问题Android与Flutter混合开发,Android第二次进入相同的Flutter页面时,该Flutter页面和第一次进入一样并无刷新,还是老数据。方案针对上诉问题,建议进入的Flutter页面使用StatefulWidget组件,并重写didUpdateWidget()。class FlutterPage extends StatefulWidget { const FlutterPage({Key? key}) : super(key: key); @override _Fl原创 2021-06-11 09:58:48 · 743 阅读 · 1 评论 -
Android与Flutter混合开发
最近项目中需要在Android原生的应用中添加一些功能,时间紧,任务重,考虑再三,Android与Flutter混合至少能节省30%的开发时间,别无他选。大致跳转如上图所示,在Android页面中有些按钮需要在Android中跳转,而一些按钮则需跳转至Flutter页面,本文简单梳理一下开发流程。1. 创建flutter module在Android项目中点击New,然后New Module。然后在弹出的面板中选择Flutter Module,之后输入Flutter module的Project n.原创 2021-06-07 09:30:21 · 4910 阅读 · 10 评论 -
Android是个什么东西?
对于Android开发者来讲,Android中很多东西可能已经用的得心应手,可是有人问Android是什么的时候,突然有点蒙圈,不知该如何回答。如果在面试中遇到这种问题,求职者应该是滔滔不绝,面试官不喊停,求职者就能一直说下去。本文主要从消费者和开发者两方面初略阐述Android是什么。消费者对于普通消费者来讲,Android就是市场上安卓手机的操作系统,也就是非iPhone手机的操作系统。Android系统手机品牌有很多,机型也很多,消费者基本上都能找到适合自己的手机。特别是一些大厂的手机都有自己.转载 2021-05-12 17:27:41 · 2257 阅读 · 0 评论 -
Flutter-Ink家族
Flutter不常用组件-InkResponse原创 2021-04-27 17:18:02 · 1234 阅读 · 0 评论 -
Flutter-Container详解
Flutter-Container详解原创 2021-04-25 14:50:43 · 8271 阅读 · 0 评论 -
Flutter陌生而又熟悉组件-Semantics
Flutter不常用组件-Semantics原创 2021-04-22 16:24:51 · 2167 阅读 · 0 评论 -
Flutter仿钉钉打卡日历
效果原型开发使用 // 考勤日历 DatePickerDialog( initialDate: DateTime.now(), firstDate: DateTime(2020), lastDate: DateTime(2030), onDateChanged: onDateChanged, // 0:无状态,1原创 2021-04-21 17:46:27 · 1057 阅读 · 0 评论 -
Flutter仿钉钉打卡
Flutter仿钉钉打卡具体效果如下开发流程先画个圆,画圈方式这是使用Container(): Container( height: 144.0, width: 144.0, alignment: Alignment.center, padding: EdgeInsets.only(top: 40.0),原创 2021-04-21 14:30:01 · 1119 阅读 · 0 评论 -
Flutter列表和表格的综合运用
最近Flutter项目中遇到一个比较有意思的页面,页面稍显复杂,考验的是列表和表格的综合运用,感觉有必要总结一下。自己粗糙绘制了一下原型,大致要求如下:页面可上下滑动点击Tab标题时,Tab栏下方区域页面进行切换,且Tab栏滑动到顶部也就是紧挨着标题栏下方时,悬浮在顶部,用户再次向上滑动时,Tab下方页面进行上滑,而Tab栏固定不变Tab栏下方页面为表格数据,有多少...原创 2021-02-01 16:08:10 · 844 阅读 · 0 评论