Android
文章平均质量分 66
m筱米
这个作者很懒,什么都没留下…
展开
-
IDEA插件杂记
IDEA插件开发:代码格式化、代码自动补全、代码AST解析和混淆原创 2022-10-09 16:42:10 · 1366 阅读 · 0 评论 -
Android内存泄漏
内存泄漏:生命周期较长的对象引用了生命周期较短的对象,导致生命周期较短的对象无法被GC及时回收,从而导致被占用的内存无法释放。原创 2022-08-16 15:08:04 · 1241 阅读 · 0 评论 -
Android屏幕共享-基于WebRTC实现
WebRTC简介WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC的实现是完全开源的,其核心代码用C++编写。原创 2022-03-17 14:28:05 · 10309 阅读 · 11 评论 -
Jetpack Compose
Jetpack Compose概览为什么使用ComposeCompose编程思想可组合函数可以按任何顺序执行重组会跳过尽可能多的内容布局、控件布局主题列表文字图形动画手势概览Jetpack Compose 是用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,帮助您使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用。为什么使用Compose更少的代码编写代码只需要采用 Kotlin,而不必拆分成 Kotlin 和 XML 部原创 2022-01-06 11:15:50 · 1506 阅读 · 0 评论 -
Android USB设备插拔监听
USB设备插拔监听普通USB设备输入型USB设备普通USB设备此类USB设备插拔监听,网络上很容易搜到。注册广播,此处只给出静态注册:<receiver android:name=".USBReceiver" > <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/> <action android:name="an原创 2022-01-05 14:51:15 · 4712 阅读 · 0 评论 -
Android集成Google Breakpad,捕捉Native层崩溃
Android集成Google Breakpad,捕捉Native层崩溃介绍Google Breakpad集成源码下载so库编译Android Studio新建工程源码目录拷贝编写CMakeListsbreakpad引用编译文件缺失:third_party/lss/linux_syscall_support.h介绍Android开发过程中,Crash是经常碰到的问题。Android端的Crash分为Java层和Native层崩溃。Java层的Crash可在Application中通过Thread.Unc原创 2021-08-03 17:41:21 · 1193 阅读 · 2 评论 -
Android串口通信
Android串口通信类结构Java层SerialPortManager:对外提供单例类NativeInterface:加载native层libSerialPortCallback:读取串口数据后,回调interfaceC++层使用获取单例类对象设置串口数据listener查找串口打开串口发送数据关闭串口类结构Java层SerialPortManager:对外提供单例类public class SerialPortManager { NativeInterface nativeInter原创 2021-05-25 16:58:33 · 1567 阅读 · 1 评论 -
DialogFragment全屏且半透明
DialogFragment全屏且透明DialogFragment基本使用:TestDialogFragment dialogFragment = new TestDialogFragment();dialogFragment.show(getSupportFragmentManager(), "test");默认唤起的DialogFragment不全屏,四周有边距。可通过setStyle实现全屏且透明:<style name="fragment_dialog" parent="@andr原创 2021-04-08 09:36:09 · 890 阅读 · 1 评论 -
Android防止快速重复点击
Android防重点击,网上有很多实现方式:RxJava 的 throttleFirst()、Aspect AOP、记录点击时间。总结了如下一种方式:本质是记录点击时间。import java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;import java.lang.reflect.Method;import android.view.View.OnClickListener;public class OnCl原创 2021-02-26 19:48:56 · 718 阅读 · 0 评论 -
Android设备:外接扫码枪与系统软键盘问题
Android设备:外接扫码枪与系统软键盘问题Q&AQ&AQ:扫码枪扫码后,自动调起系统软键盘A:扫码枪相当于外接键盘,对于外接键盘不同的Android设备表现不同,一般我们期望外接键盘与系统键盘互斥。看厂商是否在Framework有做过适配处理。若要不弹出系统软键盘,可禁用Activity软键盘:getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);解除禁用:getWindow().cle原创 2021-02-25 09:32:57 · 4290 阅读 · 4 评论 -
Activity为singleTask模式时的生命周期
Activity为singleTask模式时的生命周期Activity A:android:launchMode=“singleTask”Activity B:launchMode默认正常场景:由A切换到B:A–>BA: onPause B: onCreate–>onStart–>onResume A:onStop由B回到A:B通过finish方法返回AB: onPause A: onRestart–>onStart–>onResume B: onStop–>原创 2020-12-15 21:21:16 · 1398 阅读 · 0 评论 -
Android双屏机,副屏内容的显示和关闭
系统版本差异Android N及以下版本,支持使用Presentation实现客显屏显示;Android O及以上版本,支持使用Activity实现客显屏显示。客显屏内容显示if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { //Android O开始,使用Activity显示客显屏内容 ActivityOptions options = ActivityOptions.makeBasic(); MediaRoute原创 2020-11-17 15:07:38 · 4789 阅读 · 3 评论 -
Android:Kotlin与Java比较
Android:Kotlin与Java比较一、Kotlin优势1.1 优雅的解决Java空指针问题1.1.1 编译期进行空指针检查1.1.2 精简防空判断代码1.2 代码精简1.2.1 精简Set/Get方法1.2.2 精简属性调用1.2.3 精简单例模式二、从Java到Kotlin平滑过渡2.1 Kotlin开发环境搭建2.1.1 若为新项目,则IDE创建时选择Kotlin2.1.2 若已有工程为全Java开发,可新建一个Kotlin类文件,IDE会自动配置Kotlin开发环境2.1.3 Gradle中添原创 2020-10-10 11:11:25 · 4392 阅读 · 2 评论 -
BMP位图转换:24bpp转1bpp — Java实现
24位BMP位图转点阵图,即24bpp转1bpp基本概念场景Java语言实现基本概念BPP:bits per pixel,每个像素的比特数。场景打印机打印二维码/图片:热敏打印机只可打印点阵图;对图片质量要求低,降低内存消耗。Java语言实现package com.szsicod.print.escpos;import android.graphics.Bitmap;import android.graphics.Color;import android.util.Log;impor原创 2020-09-16 16:36:35 · 1373 阅读 · 0 评论 -
BMP位图转换:24bpp转1bpp — C实现
24位BMP位图转点阵图,即24bpp转1bpp基本概念场景C语言实现基本概念BPP:bits per pixel,每个像素的比特数。场景打印机打印二维码/图片:热敏打印机只可打印点阵图;对图片质量要求低,降低内存消耗。C语言实现#include <string.h>#include <stdlib.h>#include <stdio.h>/* BMP file signature */#define BMP_SIGNATURE 0x4D42原创 2020-09-16 16:25:41 · 1271 阅读 · 0 评论 -
Android仿Launcher实现分页功能
App需求:仿Launcher实现分页,滑动翻页。经过研究,网上使用ViewSwitcher的方案,仿Launcher实现分页功能,可基本满足需求。但无法左右来回随意滑动,故放弃。最终使用自定义ViewGroup的方式,探索出新的实现方案。效果图,如下:涉及到的类:MainActivity.java //主页面LauncherViewPager.java //自定义ViewGroup,实现了分页和滑动功能ViewPagerAdapter.java //自定义ViewGroup的Adap原创 2020-08-11 16:46:16 · 854 阅读 · 4 评论