android基础
文章平均质量分 61
许三多2020
本人希望与各位研发的朋友一起探索一起进步
展开
-
android FD_SET_chk问题定位
由于App使用了火山APM监测,找到此对应崩溃信息中的Native信息,可以看到FD归类,已超过1024个(每个手机的可打开的最大FD不同)。而大部分集中在data中,data里存在大量创建文件没有关闭造成FD超过1024.App在运行中记录报错如下,FD_SET,这个问题大概是文件描述符(File Descriptor,简称FD)超过了最大限制数,说明App内可能存在FD泄漏。原创 2024-08-17 10:54:36 · 441 阅读 · 0 评论 -
Android通过连接USB读写SD卡(libaums方案)
最近有一个需求是要求通过Usb扩展读取到SD卡的内容。可以从Usb存储设备拷贝文件到内置卡,也可以从内置卡文件拷贝到Usb存储。原创 2023-07-02 10:19:39 · 1577 阅读 · 0 评论 -
Gitlab 项目上传到Maven仓库
Gitlab 项目上传到Maven仓库原创 2023-01-18 11:05:36 · 1358 阅读 · 0 评论 -
Kotlin 协程Flow主要操作符(一)
Kotlin 协程Flow主要操作符(一)1. 主要导包2. map 转换操作符3. filter过滤操作符4. take限长操作符5. drop丢弃操作符6. flowOn操作符7. onStart操作符8. onCompletion完成操作符9. catch异常收集操作符10. buffer缓冲操作符11. conflate 合并操作符参考1. 主要导包//协程包 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.原创 2022-04-23 11:31:48 · 3365 阅读 · 0 评论 -
Could not resolve com.nbsp:library:1.8如何解决
Could not resolve com.nbsp:library:1.8如何解决库com.nbsp:library:1.8下载不下来,报403错误,这个库主要是文件选择的 implementation "com.nbsp:library:1.8"解决:用materialfilepicker替代\\implementation "com.nbsp:library:1.8" implementation 'com.nbsp:materialfilepicker:1.9.1'...原创 2021-06-30 19:01:33 · 1262 阅读 · 0 评论 -
Android自定义View之Paint
Android自定义View之Paint1、Paint画笔1、Paint画笔Paint是画笔,是自定义View中最基本的东西。下面是它的一些相关Api。 val mPaint: Paint = Paint() //新建画笔 mPaint.color = Color.RED //设置颜色 mPaint.setARGB(255, 255, 255, 0)//设置Paint对象颜色,范围为0-255 mPaint.alpha = 200 //设置alpha原创 2020-12-02 21:43:42 · 276 阅读 · 0 评论 -
Kotlin学习一、作用域函数let、with、run、apply、also
Kotlin学习一、作用域函数let、with、run、apply、also一、let函数二、with函数三、run函数四、apply函数五、also函数六、函数比较一、let函数上下⽂对象作为 lambda 表达式的参数( it )来访问。返回值是 lambda 表达式的结果。一般作用于非空的对象。let 可⽤于在调⽤链的结果上调⽤⼀个或多个函数。Boy对象:class Boy(var name: String, var age: Int, var address: String) {原创 2020-07-15 22:03:31 · 495 阅读 · 0 评论 -
AndroidStudio使用Cmake编译so
AndroidStudio使用Cmake编译soAndoridStudio 使用Cmake编译soCmake下载新建项目编译项目AndoridStudio 使用Cmake编译so以前编译so比较麻烦,这里使用Android Studio编译so,Studio版本2.3以上,我使用的是3.2版本。Cmake下载打开Android Studio,File->Setting,选择Appea...原创 2019-03-20 21:06:58 · 1465 阅读 · 0 评论 -
AsynckTask的执行原理
Android中处理耗时操作时,我们常常使用AsynckTask来处理,那AsynckTask的是怎样执行的呢?我们探究一下源码。一、AsynckTask的主要的四个方法onPreExecute()任务执行开始前,主线程中doInBackground()AsynckTask的抽象方法,任务执行中,在子线各执行onProgressUpdate()执行中,主线程中onPostExecute()执原创 2017-06-27 23:02:33 · 896 阅读 · 0 评论 -
android Parcelable中boolean与枚举的写法
Android 中经常用到自定义类实现Serializable与Parcelable接口,通过Intent在各个组件之间传递数据。而Parcelable接口要优于Serializable接口,但也相对难写。一、boolean的写法Parcel只有一个writeBooleanArray方法是用来写boolean数组的,而boolean我们可以这样写 parcel.writeByte((byte) (原创 2017-06-27 21:52:25 · 3566 阅读 · 0 评论 -
Android Log (三) 利用UncaughtExceptionHandler捕捉异常写入SD卡
在程序运行的过程中,有时候出现异常信息,比如运行时异常时,我们可以通过UncaughtExceptionHandler这个类捕捉到异常信息,并写入sd卡中,方便后期修改bug与调试。首先自定义CatchErrorHandler实现UncaughtExceptionHandler接口,重写uncaughtException方法,当程序出现异常时会调用此方法。具体CatchErrorHandler原创 2017-03-22 22:16:23 · 1097 阅读 · 0 评论 -
Fragment 之间的跳转、返回
Fragment即Activity中的片段,可以理解为一个带有生命周期的View。它的生命周期也与它所承接的Activity密切相关。在Activity中添加Fragment需要调用FragmentTransaction的add或者replace方法,如下@Overrideprotected void onCreate(Bundle savedInstanceState) { sup原创 2017-03-20 20:59:48 · 7096 阅读 · 1 评论 -
Android Fragment中监听返回键
在Activity中监听返回键我们只需要重写onKeyDown方法,在方法中去监听。如下:@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode==KeyEvent.KEYCODE_BACK){ } return super.onKeyDown(keyCode, event原创 2017-03-18 21:36:03 · 792 阅读 · 0 评论 -
Android Log(二) 将Log信息写到sd卡中并带时间
在Android Log(一) 自定义带类名与方法名的Log中自定义了自己的LogUtil,但调试程序时,可能没有线数线,可以将log信息写到sd卡,方便后期查找错误。public class LogUtil { private static final String TAG = "LogUtil"; //Log开关 private static final String原创 2017-01-14 22:23:45 · 2167 阅读 · 0 评论 -
Android Log(一) 自定义带类名与方法名的Log
Android中的Log我们经常用到,使我们调试程序起来更加方便快捷。但如果出现太多的log,如果我们不加一些标识的话,调试起来也十分的头疼。下面我们来写带类名与方法名的LogUtil,使我们调试时能快速定位到代码位置。下面是代码:public class LogUtil { private static final String TAG = "LogUtil"; //Log开关原创 2017-01-14 21:48:59 · 2198 阅读 · 0 评论