自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 react-native android 环境搭建

第一次运行会去下载很多react包,比如hermes-android-0.74.1-debug.aar等,这些包如果没有外网环境,下载速度超慢,编译进程会始终卡住。react涉及到很多的依赖下载,gradle和react相关的,第一次安装环境时有外网环境会快速很多。java版本:Java11。

2024-05-18 19:19:31 330

原创 android 反编译工具使用

接下来就是查看jar文件的内容了,可视化工具也有不少,我使用的是Bytecode Viewer。,下载后是一个jar文件,如果我们的java环境配置正常的话,可以直接双击打开它。准备我们要反编译的apk,通过如下命令将apk反编译成jar文件。记录一下dex2jar和ByteCode viewer的使用。,下载完成后解压到特定的目录中,然后将其配置到环境变量中。将上面编译得到的jar文件拖放到窗口中即可打开查看。

2024-01-16 22:05:32 692

原创 android gradle编译问题记录

有时候即便配置了国内镜像下载gradle也是慢的一批,可以手动下载gradle文件配置到项目中,比如我下载了一个新项目,它的gradle版本是gradle-4.1-all,进入项目时它会开始下载gradle,此时gradle目录中会创建gradle-4.1-all目录,我的完整路径是。这是gradle版本和AGP版本不匹配造成的,修改gradle版本小一点或大一点进行尝试,主要看AGP进行调整。,下载完成后将gradle-4.1-all.zip文件直接拷贝到上面文件夹中,不要解压,重新打开项目即可。

2024-01-13 11:43:10 1156

原创 android常用方法

在/system/app 或者 /system/priv-app目录下的应用。在网上看到一篇总结的非常全面的工具类。包括状态栏和导航栏高度。

2024-01-08 00:08:33 634

原创 build.gradle记录

当我们想要动态的修改AndroidManifest.xml文件中一些熟悉时,可以通过manifestPlaceholders占位符来完成,首先在AndroidManifest.xml文件中预先设置一些占位符,例如。在build.gradle文件中就可以通过manifestPlaceholders来给这些变量赋值。

2023-12-31 22:24:06 449

原创 dart 控制台应用

学了挺长时间flutter,最近才发现原来它也可以写控制台应用,而且很方便,这里学习记录一下。

2023-12-03 19:36:46 189

原创 命令行启动android模拟器

有时候不想打开android studio就能方便的启动模拟器,探索一番后发现可以通过命令行来启动,方便快捷。

2023-10-14 12:29:12 802

原创 flutter出现entrypoint isn‘t within the current project

更新了android studio版本,打开一个老的flutter项目时,无法运行,打开configuration配置,提示错误。

2023-10-08 18:39:55 1272

原创 flutter产物以aar形式嵌入android原生工程

以前做的项目中,flutter都是作为module嵌入原生工程中,新公司项目却是以aar形式嵌入android工程,这种优点是原生工程不必配置flutter环境也能跑了,这里记录一下简单步骤。

2023-09-16 00:08:39 1167 1

原创 【调试手机web网页】

手机app中嵌入了某些web网页,我们有时候需要调试一下某些注册的js回调函数是否生效,就像电脑上打开控制台一样方便。2、点击想要调试的网页下面蓝色的inspect,会弹出一个新的页面,这里就能看到手机端的页面和控制台了。1、电脑上Google浏览器打开chrome://inspect/#devices,能够看到我们的设备。2、电脑连接VPN可以访问Google(自己找个翻墙软件)必须能访问Google,否则弹出的页面是404。1、手机打开开发者模式,连接到电脑上。3、在控制台输入要执行的命令,比如。

2023-09-05 11:37:41 306

原创 多线程顺序打印

这个方法我们使用ReentrantLock+Condition来实现多线程同步,每个线程在执行之前,需要先判断一下当前变量是否是自己要打印的那个,不是的话就等待,否则就打印变量,之后再通知下一个线程执行。最近面试遇到一个要求多线程顺序打印的题目,作为一个两年的java开发居然写错了,当时觉得丢脸极了,想死在当场,下面就总结一些集中写法。第一种最简单的,我们不用锁,通过循环的方式(CAS)算法来达到加锁的目的。这种巧妙的使用while循环达到加锁的目的,不需要进行同步操作。

2023-06-07 23:17:07 611

原创 小红的好数组陡峭值之和

腾讯面试的一道算法题

2023-05-16 11:54:49 594

原创 android横屏

android横屏化相关方法

2023-05-11 14:29:37 900

原创 移动端protobuf使用

java通过生成的类提供的静态方法fromBuffer(data)就可以将二进制数据转化为具体的对象了,dart可以直接使用生成的类。–dart_out 是生成文件目录,–proto_path是源文件目录,生成的是.dart文件,如果要生成java文件,用。打开生成文件,发现它报错,这是因为还没有添加protobuf依赖,在pubspec.yaml中添加。搭建开发环境就不多说了,网上资料很多,配置好环境变量后flutter命令和dart命令能用就行。4、根据pb文件生成dart文件。

2023-05-11 14:21:40 538 1

原创 Flutter性能分析工具使用

flutter性能分析工具

2023-05-11 11:31:41 1953

原创 FlatButton替换成TextButton

原来flutter项目中到处使用了FlatButton,升级到Flutter 3后,FlatButton就不存在了,需要进行替换,一个个换显然很麻烦,所以自己封装了一个。这里有几个需要非常注意到地方。

2023-05-04 13:26:30 330

原创 android获取当前主题

最近遇到一个bug,android8.0的手机,半透明的activity如果设置了旋转,就会发生崩溃。但是为了允许平板横屏,手机竖屏,又必须设置旋转方向,所以就需要在代码中获取当前主题,并判断它是不是透明的主题,代码如下。我项目中只使用了三种透明主题,可根据自己项目实际情况修改。

2023-03-27 20:00:43 665

原创 Tablayout tab没有均分宽度显示

使用TabLayout时,一般我们不用设置tab的排列方式,默认都是均分宽度居中显示的,但是今天遇到一个奇怪的问题,在鸿蒙的平板上,两个tab紧紧的挨在一起在中间。但是还是不行,只能一个属性一个属性的尝试,最后发现再加上app:tabMaxWidth="0dp"就可以了。但是在手机上又是正常的,给其设置了。

2023-02-28 11:37:55 453 1

原创 android判断Activity是否存在

遇到一个需求是通过QQ分享文件,要启动QQ的这个界面,com.tencent.mobileqq.activity.JumpActivity,但是需要先判断这个Activity是否存在,有两种方法,首先创建一个Intent。看一些文章两种方法都可以,但是测试发现方法一未安装QQ时会抛出异常,程序崩溃,所以只能用第二种。

2023-01-01 18:29:01 1071

原创 在Column中嵌入横向滚动的ListView

但是高度指定的话毕竟不利于拓展,我们希望能根据item自动计算出高度,借鉴到一个比较好的思路是利用Stack布局,它会自动根据除Positioned组件之外的组件的大小来计算出自身的大小,于是我们可以提供一个item作为原型给stack计算大小,将ListView放在Position中显示。

2022-11-12 15:04:11 356

原创 flutter学习记录

flutter学习记录,provider使用,HookWidget...

2022-09-24 17:16:26 1390 3

原创 android 项目中导入flutter module

Android集成flutter module

2022-08-30 18:44:03 2217

原创 WindowInsetsControllerCompat简单使用

WindowInsetsControllerCompat 简单使用

2022-07-28 15:56:32 2682 1

原创 viewpager冲突解决

viewpager滑动冲突解决

2022-07-13 11:16:58 878

原创 android判断蓝牙的连接情况

android蓝牙连接状态判断

2022-07-11 19:39:35 5789 2

原创 一些对模糊搜索的思考

歌曲搜索

2022-06-30 22:59:56 461 1

原创 view的刷新机制

view的刷新机制

2022-06-23 00:53:16 1450

原创 android事件分发机制

Android事件分发

2022-06-06 00:41:08 261

原创 图片的高效加载

前言最近写了一个相册应用,发现自己的界面卡的要死,有时候还会崩掉,后来发现是自己加载图片的时候没有处理,导致OOM了,下面就记录一下图片加载和缩放。Bitmap构建在Android程序中,无论图片是jpg 还是png, 都是表示为一个Bitmap对象, 我们一般是通过BitmapFactory来构建,它主要有四种常用方法BitmapFactory.decodeFile(...)BitmapFactory.decodeResource(...)BitmapFactory.decodeStream(

2022-05-15 18:02:44 227

原创 android应用层aidl的简单使用

aidl的Android提供的方便我们进行应用间通信的工具,其全称是Android Interface define language,本文记录一下如何在两个应用之间通过aidl进行通信。和普通的接口文件相比有如下的一些特性只能定义方法,不能定义常量支持8中基本类型支持String,CharSequence支持List,确切的说只支持ArrayList支持Map(HashMap)支持Parcelable对象1、接口定义在项目中main目录下,创建一个aidl文件夹,再创建aidl文件。

2022-05-08 19:30:15 978

原创 开发遇到问题记录

1、aar包导入项目中网上很多教程都是现将arr包导入到libs目录中,在app目录下的build.grade文件中添加repositories { flatDir { dirs 'libs' }}但是我尝试了之后还是会编译报错build was configured to prefer settings repositories over project repositories but repository ‘flatdir’ was added by buil

2022-05-06 10:31:54 3349

原创 RecyclerView使用技巧总结

RecyclerView的一些使用技巧

2022-05-06 00:16:54 1895

原创 Activity与Fragment之间通信的多种方式

前言本文主要介绍Activity与Fragment之间通信,以及同属于一个Activity的Fragment之间的通信。主要的方式有1、通过

2022-04-12 23:56:55 7230 1

原创 android overlay机制实践

前言最近在做launcher时有一个需求是通过overlay机制实现替换主题,中间遇到了不少问题,这里记录一下自己以后能用到,也希望能帮助有需要的同学。我使用的是android11系统,参考官方文档https://source.android.google.cn/devices/architecture/rros?hl=zh-cn概述android overlay是一种资源的动态替换机制,它的工作原理是将叠加层软件包中定义的资源映射到目标软件包中定义的资源。当应用尝试解析目标软件包中资源的值时,系

2022-04-07 14:55:26 6307 1

原创 couldn‘t find “libijkffmpeg.so“

今天在学习ijkplayer的使用,因为要支持AVI等视频格式,所以需要先编译,我没有经过编译,直接下载了别人已经编译好的so库,地址在这里https://github.com/xiong-it/compiled_ijkplayer4android由于grade文件配置不正确,我出现了错误couldn’t find “libijkffmpeg.so”, 找了好久错误终于配置正确了,这里记录一下。1、将so文件复制到工程中,目录结构如下和src在同一个目录就行了。2、在grade文件中导入so库

2022-03-14 14:59:27 3680

原创 TabLayout+ViewPager2的简单使用

学习之前我们先看一下显示的效果这里显示的底部导航栏,如果想实现的顶部导航栏,只需要调整一下TabLayout的位置即可。1、导入依赖使用ViewPager2之前需要先导入依赖,这里的依赖可能不是最新的,可以自己查找最新的版本。TabLayout不需要导入。implementation "androidx.viewpager2:viewpager2:1.0.0"2、布局<androidx.viewpager2.widget.ViewPager2 android:layout_wi

2022-02-22 00:30:15 5612

原创 android 自定义view

本文我们将自定义一个View,来实现一个时钟,先看一下效果图。这里只是截取了一个静态图,实际上可以秒针是运动的。至于其他的更好看的效果在这基础上可以自己添加。1、属性设定在res/values 目录下新建立一个文件attrs.xml, 我们将在里面定义时钟所需要的属性,这里我只是定义了4个属性,分别是时、分、秒、背景颜色。<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable n

2022-02-11 18:12:23 1397

原创 Media Session框架的简单介绍

1、介绍Media Session框架是google在android5之后引入的一个音乐播放框架,用来解决音乐界面和服务之间的通信问题,特别注意的是,我们现在都是在比较高的版本上开发,因此要用比较高的兼容包,一般都以Compat结尾。Media Session框架中有四个常用的成员类,它们是整个流程控制的核心,下面我们一一介绍一下。MediaBrowser媒体浏览器,用来连接媒体服务MediaBrowserService和订阅数据,在注册的回调接口中我们就可以获取到Service的连接状态、获取

2022-01-20 21:02:49 8285

原创 aidl 实现native service和App通信

之前一直写的是android应用之间的aidl开发,最近学习的是native service和App之间通过aidl进行通信,这里记录一下。主要介绍的是native service和App端aidl的实现,至于service的编译过程我这里没有详细的记录。我所用的android版本是11.1、定义aidl文件aidl文件中定义了我们想要实现的功能,是后续一切的开始,为了测试回调功能,我这里定义了一个回调接口和一个自定义数据类型FileInfo, 用来跨进程传递信息的自定义数据结构。FileInfo.a

2022-01-19 10:36:54 4964 1

原创 android 实现一个开机自启动的service

1、概述本文记录了如何在android系统中创建一个native服务,实现简单的文件复制功能,并实现开机启动。2、创建工程文件在android 源码中找一个位置,创建一个工程文件夹,里面用来存放我们项目所需的各种文件,一般在vendor目录下,本文是是frameworks//vendor下创建了一个FileService文件夹,然后再创建aidl文件,包含我们需要定义的功能,aidl文件的定义如下。package com.android.fileoperationinterface IFileO

2022-01-17 20:30:37 5860 3

logisim271.zip

电路模拟神器,轻量级,汉化版,logisim简单的说就是一个设计虚拟电路的软件,它可以将预先将一些电路设计出来,作为模拟与验证之用,很多从事这方面教育的人会用的比较多,学习计算机的同学大二的数字逻辑和大三的组成原理都会用到。

2019-10-04

空空如也

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

TA关注的人

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