自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(247)
  • 资源 (23)
  • 问答 (1)
  • 收藏
  • 关注

原创 仿nice打标签

先上效果图: 动态git图 github地址:https://github.com/zhiqiangli520210/-nice- 如果觉得还可以话,求各位道友给点个star,谢谢,这样我们都可以为开源共同努力,减少我们的工作时间成本。 首先介绍一下功能点: 本项目是基于PictureView进行优化的,github地址:https://github.com/saiwu-bigko

2017-06-29 10:22:52 1710 6

原创 EventBus从源码开始探究

首先,简单介绍一下EventBus,这是一个事件的发布与订阅框架,大大的简化了android中事件传递。 如:在fragment中任何地方都可以向activity传递事件和值,可以替代Handler、BroadCastReceiver、Interface 回调等传值方式。同时与这些方式传递事件相比,EventBus优点在于,使用简单,方便,易操作。 接下来,介绍一下EventBus的使用: 第

2017-05-15 20:52:11 411

原创 Android与js交互

应用场景:Android端拍照,选相册,然后将图片路径上传成功之后,获取到网络路径,将此路径返还给h5界面,并展示出来。 主要用到android与js交互。 效果图如下: 1.在webview类中 mWebView = (WebView) findViewById(R.id.wv); //设置webview可以与js交互 mWebView.getSettings().s

2016-12-13 14:00:25 4880 2

原创 Kotlin学习

/kotlin高阶函数的实现原理,每调一次Lambda表达式在底层被转换成了匿名类的实现方式,都会创建匿名内部类对象,造成额外的内存和性能开销 // 内联函数 inline 作用是在编译kotlin文件时直接将内联函数内联掉,这样就把内联函数执行过程放在调用此内联函数的位置,避免了java中多调用方法的操作,减少性能消耗。//// getImage(imageId) // 👈 将会运行在 IO 线程。

2024-02-23 09:25:59 603 1

原创 android 将服务设置为前台服务

【代码】android 将服务设置为前台服务。

2023-12-19 10:36:43 403

原创 禁止最近任务强杀app进程

需要app应用本身加一个meta-data标签并将其value设为false,这样多任务退出时会给app发广播(不再kill其进程),app收到广播后自行进行退出操作,方法如下所示。若应用的com.xxx.recent.prop.force_stop属性为false,则在应用退出前会接收到如下广播。多任务可以不kill场景广场进程,

2023-10-25 10:31:47 170

原创 Win10任务栏无反应怎么办 Win10任务栏无反应解决方法

首先断网 然后调出任务管理器,快捷键是Ctrl+Shift+Esc 把windows任务管理器进程结束掉 然后输入并运行explorer 接下来在底部任务栏右键 选择资讯和兴趣,点击关闭

2023-07-21 19:05:02 179

原创 在 Linux 系统上下载 Android SDK

使用ubuntu系统进行车机开发,今天开始配置环境,首先是下载android studio,然后下载android sdk,这里需要注意的是linux系统不能使用windows系统下的Android sdk,亲测会出现各种问题。常规思路,下载sdk,安装之后修改环境。打开官网已经没有了sdk各个版本的下载资源。

2023-07-17 09:43:25 3663 1

原创 数据库删除聊天30天之外的历史记录

表示删除满足时间戳小于指定值的记录,第三个参数是一个字符串数组,用于替换WHERE子句中的占位符。方法用于删除符合条件的记录。第一个参数是表名,第二个参数是WHERE子句,其中。另外可以执行以下逻辑。

2023-07-12 15:30:54 212

原创 如何使用AIDL进行跨进程通信

通过以上步骤,你可以使用AIDL进行跨进程通信。需要注意的是,你需要将服务端进程的包名和Service类名设置为正确的值,以便正确连接到服务端进程的Service。同时,AIDL也支持在接口中定义回调方法,以实现双向通信。详细的使用方法和示例可以在Android开发文档中找到。

2023-07-12 15:25:58 347

原创 如何使用Messenger进行跨进程通信

Messenger和Handler提供了一种方便的方式来实现简单的进程间通信,但对于复杂的通信需求,你可能需要考虑使用其他更高级的IPC机制,如AIDL、ContentProvider等。要注意的是,你需要将目标进程的包名和Service类名设置为正确的值,以便正确连接到目标进程的Service。处理接收到的消息:在接收消息的线程或进程中,利用之前创建的Handler对象重写handleMessage方法来处理接收到的消息。在目标进程中创建一个Service,实现刚才定义的AIDL接口。

2023-07-12 15:17:20 204

原创 在Android车机上判断当前是主屏还是副屏

需要注意的是,不同车机设备可能在显示屏管理方面有所不同,因此在实际应用中可能需要根据具体情况进行适配和调整。方法返回一个显示屏数组,其中包括主屏和副屏。方法返回当前窗口所在的显示屏。,可以将其区分为主屏或副屏。,可以将其区分为主屏或副屏。

2023-07-12 09:45:03 833

原创 android excludeFromRecents将activity在最近的使用的应用程序列表中不显示

这将使MainActivity在最近使用的应用程序列表中不显示。请注意,这只是将应用程序排除在最近使用的应用程序列表中,并不会影响应用程序的正常启动和运行。是Android应用程序清单文件(AndroidManifest.xml)中的一个属性,用于控制应用程序是否在最近使用的应用程序列表中显示。使用此属性可以为某些类型的应用程序(例如锁屏应用程序、即时通讯应用程序等)提供更好的用户体验,或者在特定情况下隐藏应用程序的存在。,可以将应用程序从最近使用的应用程序列表中排除。

2023-07-12 09:38:08 886

原创 RemoteCallbackList 跨进程通信中的使用

这只是一个简单的示例,实际使用中还需根据具体的需求进行适当的修改和扩展。是专门用于管理跨进程回调接口的类,它提供了一组方法来注册、注销和通知回调。在 Android 中,可以使用。类来实现跨进程通信中的回调管理。

2023-07-11 17:33:53 423

原创 soundeffectsenable控制视图或控件的点击音效是否启用

参数对于所有视图和控件可能不适用,因为不是所有视图和控件都有点击音效的。具体的实现取决于各个视图和控件的特定属性和方法。参数可以用于控制视图或控件的点击音效是否启用。在这个示例中,点击按钮时不会发出点击音效。将禁用点击音效,而将其设置为。以下是在XML布局文件中使用。在Android开发中,

2023-07-11 17:32:35 245

原创 Android车载需要学习哪些知识?

Android车载开发需要掌握Android开发基础知识、车载系统架构、语音控制、导航和地图应用、多媒体和娱乐、安全性和驾驶辅助功能等相关知识。车载应用开发:学习如何使用Android开发工具和SDK来创建和构建车载应用,包括创建活动、服务、广播接收器等组件,处理用户输入和交互,以及处理车辆数据。测试和调试:学习如何进行车载应用的测试和调试,包括模拟测试、设备测试和用户体验测试,以确保应用的稳定性和性能。多媒体和娱乐:学习如何使用多媒体功能,如音频播放、视频播放和图像显示等,以及集成第三方娱乐应用和服务。

2023-07-11 13:14:30 825

原创 Android车载开发:创造智能驾驶体验

随着技术的进一步发展,Android车载开发将在未来继续引领智能驾驶的发展,为驾驶员带来更多的便利和安全性。通过将智能手机的功能与车辆的系统进行整合,Android车载开发为驾驶员提供了更多的便利和安全性。a. 提升驾驶员的便利性:Android车载应用可以将手机上的功能与车辆系统相连接,实现驾驶员的语音控制、导航、娱乐等功能,提供更加便捷的驾驶体验。b. 提升驾驶安全性:通过与车辆系统的整合,Android车载开发可以使驾驶员在驾驶过程中更加专注于道路,减少分散注意力的情况,从而提升驾驶安全性。

2023-07-11 13:11:44 381

原创 腾讯PagView动画视频组件简单使用

Android DEMO下载: https://github.com/libpag/pag-android.git。iOS DEMO下载: https://github.com/libpag/pag-ios.git。2、创建PagPlayer,设置数据源(PagComposition),绑定画布。

2023-07-08 16:21:19 1294

原创 android车载开发,如何模拟器上实现多屏

使用ActivityOptions设置activity显示在哪个屏幕上 launchDisplayId。通过Presentation来实现,他是一个Dialog(context,display)adb shell am start -n 包名+Activity。三个点,Display-addSecondary display。

2023-07-05 09:36:01 571

原创 android获取键盘高度

android获取键盘高度

2022-10-10 11:52:31 2713 1

原创 摇一摇,可以监听开始与完成

安卓端做摇一摇,主要运用到SensorManager 这个类,通过重力传感器,获取xyz三轴的位置变化,来判断是否是摇动一、SensorManager 初始化 注册SensorManager//获取 SensorManager 负责管理传感器mSensorManager = ((SensorManager) getSystemService(SENSOR_SERVICE));i

2022-03-22 10:04:26 263

原创 Flutter 混编快速开始

Flutter 混编快速开始1 搭建flutter开发环境flutter安装配置教程:https://flutter.dev/docs/get-started/install/macos中国地区特别配置:https://flutter.dev/community/china1.1 获取Flutter SDKflutter官网下载其最新可用的安装包,解压安装包到你想安装的目录。1.2 中国区用户环境变量配置: export PATH=~/Develop/...

2022-03-16 08:55:29 615

原创 android studio升级到4.0.1后,报错default activity not found错误

2022-03-16 08:54:37 209

原创 Android sharepreference槽点及改进方案

1 概述简介1.1 简介众所周知,SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。它的存储位置是在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。1.2 使用方式实现SharedPrefe

2022-03-16 08:54:16 2827

原创 Android TV app前期准备

Android TV app前期准备处理电视硬件 app上检查电视设备 处理不支持的硬件features Declaring hardware requirements for TV 声明权限意味着硬件要具有该特性 检查硬件Features 处理控制器断开场景处理电视硬件电视硬件是大大不同于其他Android设备。电视不包括其他Android设备上发现的一些硬件特性,如触屏,摄像头,GPS接收器。电视也完全依靠辅助硬件设备。为了让用户与电视应用程序交互,他们必须使用一个遥控器或游戏手柄

2022-03-16 08:53:13 552

原创 Android渠道包构建流程

美菜商城Android包发布分为自有渠道和应用市场多渠道2种。不同的渠道包的区别在于应用内部有一个channel标识区分,用以友盟统计等操作。Android端接入了美团的walle实现多渠道打包。Walle介绍Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。在默认情况下,android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用

2022-03-16 08:52:44 1122

原创 底部弹窗组建

★项目背景、需求商城项目中多个地方存在底部弹窗,现将ui统一,并输出UI组件,方便后期维护。目前涉及页面有1、商详页:商品描述底部弹窗、优惠券底部弹窗2、订单结算页:注意事项底部弹窗,由于选择日期底部弹窗业务过于耦合,所以不会抽到组件中★功能定位&目标★总体设计主要使用BottomSheetDialog与BottomDialogBuilder,内容区主要是用recyclerview实现,配合FlexibleAdapter,因此需要使用方自定义item继承Abstrac

2022-03-16 08:52:12 724

原创 Android外部调起App方案

背景日常使用场景中经常需要从app外部唤起app,比如短信链接,浏览器页面点击按钮等。传统的方式都可以使用android系统自带的拦截url ,也就是schema方式,但这种方式在拦截生效时会弹出所有可以处理此连接的app出来供用户选择,如果用户没有选择我们的app,那么这个唤起也就不成功。现在市面上有很多成熟的方案,目前美菜商城采用的是极光魔链sdk来处理。极光魔链sdk使用可以参考极光魔链接入方式https://docs.jiguang.cn/jmlink/guideline/intro/.

2021-11-30 19:20:33 2090

原创 APP接入沉浸式状态栏小结

1.全屏PopupWindow大客户中全屏的PopupWindow,通常是用于一些简单信息的展示、引导和选择等,常见的有以下几种:(1)引导PopupWindow商详页“加常用”至清单引导全部菜品&购物车页的切换门店引导(2)优惠券(3)添加商品输入键盘(4)商详大图浏览(5)结算页图片弹屏广告(6)购物车页商品需分开结算弹窗……目前大客户中的绝大多数全屏PopupWindow只要在构造函数中添加如下一行代码即可实现沉浸式状态栏,如下:this

2021-11-30 19:19:58 886 1

原创 Android 直播调研

1 概述视频直播,可以分为 采集,前处理,编码,传输,解码,渲染 这几个环节。推流端:采集、前处理、编码、推流服务端:转码、录制、截图、鉴黄播放器:拉流、解码、渲染互动:聊天室、礼物系统、赞等2 技术点2.1 协议音频采用AAC编码、视频采用H264、H265编码。推送采用RTMP协议2.2 推流端采集:音频:AudioRecord,视频:Camera。Android要做机型适配工作手机直播SDK通过手机摄像头和麦克风直接采集视频数据和音频数.

2021-11-30 19:18:52 5823

原创 安卓应用提供64位原生的支持

一、优缺点优点:64位通常会使应用运行的更加的快,因为64位的指令集支持更高的代码运行效率,为用户提供更快、更丰富的体验 缺点:64位构建会让APK的体积变的更大,多了so库二、如何为安卓应用提供64位原生的支持针对原生代码进行编译,项目中目前使用的32位是armeabi-v7a,支持64位只需将arm64-v8a添加到应用的“build.gradle”文件中的ndk.abiFilters设置 商城中代码结构,需要增加arm64-v8a,迁移64位对应的so文件三、兼容性问题方案:..

2021-11-30 19:18:16 2770

原创 记一次解决java.lang.IllegalArgumentException: Invalid path: /storage/emulated/0问题

问题主要出现在以下代码中 static long getSDTotalSize(@NonNull Context context) { File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long totalBlocks =

2020-08-19 18:50:39 5345

原创 Android如何使用mapping文件,定位线上bug

1、获取到mapping.txt2、使用android sdk自带工具,android-sdk-tools-proguard-bin-proguardgui3、打开proguardgui工具,ReTrace选项,Mapping file中添加mapping文件,Obfuscated stack trace中粘贴线上bug信息4、ReTrace!...

2020-08-19 11:38:06 2296

原创 android线上包禁止抓取https包

<network-security-config> <base-config cleartextTrafficPermitted="true"/> <!-- Trust user added CAs while debuggable only --> <debug-overrides> <trust-anchors> <!--信任用户安装的证书--> .

2020-07-28 11:58:11 540

原创 Manifest merger failed with multiple errors ,see logs

第一次遇到这样的问题,没有找到有意义的错误信息,其实已经很明显了,mainfest的问题,我们只要找到它,然后点击左下角的Merged Manifest,查看详细的错误,对应解决就好了...

2020-06-10 10:32:53 195

原创 Flutter 基础语法学习

void main (List < String > args) { print("helloword"); //单行注释 /** * 多行注释 * *///变量和数据类型//Number : int double int score = 23; ...

2020-05-28 19:50:38 793

原创 Android 换肤调研

1)把皮肤资源文件内置于应用程序Apk的资源目录下,这种方案最简单,但是导致apk安装包会比较大,而且不好管理(2)从服务端获取资源如图片进行动态加载。(3)将皮肤资源文件打包成zip的资源文件方式提供,该方法也比较多被采用。(4)将皮肤图片资源以独立的Apk安装包的方式提供,做成插件化的方式。便于管理。插件化方式流程:1.将制作好的皮肤包上传到服务端后台2.客户端根据接口数据,处理皮肤加载逻辑模块依赖关系换肤三部曲:下载皮肤文件 ->获取资源 ->替换1、创建一个皮肤包工程

2020-05-14 17:43:36 368 2

原创 Android 10.0(Q api=29)适配

1、存储权限(分区存储)Android手机分为外部储存和内部储存内部储存:/data 目录。一般我们使用getFilesDir() 或 getCacheDir() 方法获取本应用的内部储存路径,读写该路径下的文件不需要申请储存空间读写权限,且卸载应用时会自动删除。外部储存:/storage 或 /mnt 目录。一般我们使用getExternalStorageDirectory()方法获取的路径来存取文件。因为不同厂商、系统版本的原因,所以上述的方法并没有一个固定的文件路径。那我们所说的外部储存访问限

2020-05-14 17:38:44 1260

原创 Android Q 暗黑模式

1、Force Dark一种能让应用程序快速适配深色主题,Force Dark的工作原理是系统会分析浅色主题应用下的每一层View,并且在这些View绘制到屏幕之前,自动将它们的颜色转换成更加适合深色主题的颜色。注意,只有原本使用浅色主题的应用才能使用这种方式,如果你的应用原本使用的就是深色主题,Force Dark将不会起作用。右击res目录 -> New -> Directory,创建一个values-v29目录,然后右击values-v29目录 -> New -> Valu

2020-05-14 17:30:31 1081

原创 北漂程序员小强开通今日头条号了

欢迎大家关注我的今日头条账号,地址:https://profile.zjurl.cn/rogue/ugc/profile/?version_code=770&version_name=70700&user_id=76936098456&media_id=1640842596260878&request_source=1&active_tab=dongtai&...

2020-04-21 11:01:13 9831

AIDL客户端demo

AIDL(Android 接口定义语言) 是 Android 提供的一种进程间通信 (IPC) 机制。通过这种机制,我们只需要写好 aidl 接口文件,编译时系统会帮我们生成 Binder 接口,实现进程之间的通讯。 一、如何定义aidl文件 1、在main目录下创建文件夹aidl,然后在aidl下new aidl 创建.aidl文件--&gt;IServerInterface.aidl 2、点击同步按钮,

2018-10-17

AIDL服务端

AIDL(Android 接口定义语言) 是 Android 提供的一种进程间通信 (IPC) 机制。通过这种机制,我们只需要写好 aidl 接口文件,编译时系统会帮我们生成 Binder 接口,实现进程之间的通讯。 一、如何定义aidl文件 1、在main目录下创建文件夹aidl,然后在aidl下new aidl 创建.aidl文件--&gt;IServerInterface.aidl 2、点击同步按钮, --------------------- 作者:android-李志强 来源:CSDN 原文:https://blog.csdn.net/lzq520210/article/details/83110422?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

2018-10-17

android指纹识别demo

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-05-24

c调用Activity中的方法

c调用Activity中的方法

2017-01-10

c调用java的demo

ndk开发c调用java

2017-01-10

java调用c代码demo

java调用c代码demo

2017-01-10

NDK开发demo

NDK开发java调用c c调用java

2017-01-10

Glide加载图片

Glide加载图片的使用方法

2016-12-15

EventBus普通事件和粘性事件

EventBus普通事件和粘性事件

2016-12-14

android和js交互拍照后将url返回给js

实现安卓拍照,选择相册获取的图片,然后将图片返回给js,让h5展示出图片

2016-12-13

仿微信摇一摇实现开始与结束监听

仿微信摇一摇实现开始与结束监听

2016-12-12

安卓与js初步交互

安卓与js实现初步交互,h5页面调用android端的方法

2016-12-12

EventBus的使用

EventBus的简单使用

2016-10-24

android截屏

长按屏幕任何位置,画圆,开始截屏保存到本地,接下来就进行上传

2016-10-21

录音 raw转换为mp3

录音 raw转换为mp3

2016-08-24

android断点续传

android断点续传

2016-05-12

视频播放videoview

视频播放videoview

2016-01-28

android加解密

直接就可以运行,内部代码,演示如何实现加解密。

2016-01-27

带指示器效果的progressbar

实现一个progressbar,垂直上方有一个指示器,可以动态指示进度值。

2015-12-14

多张图片上传到服务器

实现拍照或相册选择图片,并可以多张上传到服务器,开发工具为androidstudio

2015-12-14

书页效果Viewpager

这是模拟翻书效果的viewpager,原理比较简单

2015-11-28

仿微信图片选择器

自己写的关于多张图片上传的demo,拿去直接就可以用,实现功能,点击加号,添加相机或者相册图片,上传逻辑自己实现。缺点是:不能同时选择多张图片。

2015-11-28

仿淘宝继续拖动显示详情页

仿淘宝,当界面拉到底部的时候,会显示,继续拖动显示详情页,会拖出下一页面。

2015-11-28

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

TA关注的人

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