自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stand up

机 敏、思考、善于观察、乐于主动参与问题的解决

  • 博客(132)
  • 资源 (11)
  • 收藏
  • 关注

原创 一次c++监听Linux文件目录的实践

inotify_add_watch(inotify_fd, path.c_str(), IN_CREATE | IN_MODIFY | IN_DELETE) // 根据需要添加要监听的事件。// 存储从内核得到的事件集合。目的:监听系统/data/system/dropbox目录,解析出crash和ANR,并上传云端。测试时,发现在监听过程中,点击读取文件内容,出现ANR,最后发现整个监听需要放到子线程完成。// 等待事件发生。// 注册 epoll 事件。// 创建epoll句柄。

2023-10-13 13:09:56 318

原创 room数据库升级

version = 2 // 旧版本为1。直接添加表字段,不升级会报异常如上图。向XXInfo表中插入 total字段。如上等情况需要升级数据库。1.表字段或减少表字段。

2023-06-14 09:05:05 663

原创 ImageView 引起的不必要的麻烦

后面有发现其他引用地方使用相同的资源是正确的,这就说明是问题地方使用资源的问题了,通过检查发现xml里设置的属性是background,而代码里是setImageResource,如果是平时可能很快检查出问题,刚好做主题,最值得怀疑的就是主题资源问题,虽说不是自己写的代码,也记录下,时而勉之。发现一处资源总是不对的,反复检查几套主题资源正确性,发现没问题。overlay做多主题,

2023-06-01 16:29:13 101

原创 ImageView android:enabled失效

特殊场景需要ImageView 默认情况下无背景,满足条件后显示背景,同事点击要有压下效果,无效,由于ImageView默认是enabled状态,所以显示出背景。layout中设置 ImageView。

2023-06-01 11:16:54 310

原创 The style on this component requires your app theme to be Theme.AppCompat

从方法名可以看出是判断是否主题,这里有点不是太明白为啥是这个名字,不过无关紧要,这个方法就是检测传进来的主题属性是否在当前主题里都存在,如果有一个不存在则认为不是主题,从上面可以看出其实就是检测R.attr.colorPrimary属性是否存在,不存在就让你异常,所以解决办法自然有了,那就是在主题里添加这个属性,不过一般加三个,单独加colorPrimary也可以解决问题。2.将application主题也换位Theme.AppCompat // 失败。这个组件会检测主题,通过代码看到。

2023-05-31 09:25:39 1456

原创 依赖的module同名资源引发崩溃

重新命名,不同模块根据功能命名(如果是sdk里有重复资源,本地也要避免重复命名,sdk内部资源命名尽量要有辨识度)如题,APP依赖module A和B,A和B中有Layout资源重复,在需要B资源时,加载的是A资源导致崩溃。

2023-05-29 21:20:36 86

原创 recyclerview 顶部阴影不显示

recyclerview 顶部阴影不显示

2023-05-26 15:28:18 128

原创 service启动的正确姿势

新的 Context.startForegroundService() 函数将启动一个前台服务。现在,即使应用在后台运行,系统也允许其调用 Context.startForegroundService()。不过,应用必须在创建服务后的五秒内调用该服务的 startForeground() 函数。如果针对 Android 8.0 的应用尝试在不允许其创建后台服务的情况下使用 startService() 函数,则该函数将引发一个 IllegalStateException。

2023-03-14 20:46:05 525 1

原创 通过service跨进程传输数据异常分析

媒体服务提供一个SDK给N多个应用集成,某个应用(A)来一个新需求,需要在service端传输数据MediaInfo里添加一个字段F(String),于是给A一个新版本SDK。看到这里我就想,我传输个数据为啥要回写,而且此处有个判断条件,那么是否可以通过影响这个条件来控制回写数据,而reply对象传进了transct方法。进一步加日志,定位到某次binder传输数据给某个client前数据正常,传输后就变null,说明是跨进程传导致数据异常。从接口说明上看reply似乎可控,于是找到aidl文件。

2023-03-14 15:37:46 265

原创 CopyOnWriteArrayList和ArrayList遍历和删除操作区别

复制出一个新的容器,然后在这个新的容器里进行修改元素的操作,而后面进行的读操作则继续在旧容器中读取。修改完之后,再将原容器的引用指向新的容器,而旧的容器则进行垃圾回收。对一个容器进行修改操作(添加、删除、编辑)时候,不会直接对当前容器修改,而是先将当前容器进行 Copy,CopyOnWrite 原理。

2023-03-06 16:28:59 419 2

原创 livedata+ lambda遇到的坑

这种方案不可取,原因是如果这个livedata有很多个页面都要订阅时,就错误了,setValue方法到不错,可用。两个页面用同一个类,比如Fragment, 这个fragment里订阅livedata。前提:livedata的生命周期比和订阅这个livedata页面长。如果lambda内没有引用外部非静态成员,会被编译程类似单例的类。这是在livedata.observe(this) {lambda内引用外部非静态变量或方法。页面没有正常销毁,又创建一次。一般情况是new出来的。

2023-01-29 18:08:26 862

转载 Android中设置org.gradle.jvmargs

Android中设置org.gradle.jvmargs

2023-01-29 15:54:59 1140

转载 为何Google要将LiveData设计成粘性的?

相信很多人在职业生涯的面试过程中都被问过一个问题?面试官:我看你简历上有写LiveData,那你能说说LiveData是粘性的吗?这确实是一个值得深入思考的知识点,今天就让我们站在Google设计者的角度来深入学习一下LiveData。

2022-12-15 10:59:23 90

原创 android view获取到焦点高亮效果如何去掉

1.最简单android:defaultFocusHighlightEnabled="false"或 代码设置binding.xxx.defaultFocusHighlightEnabled = false2.设置view 不要获取到焦点,有些场景会有问题,比如硬件控制焦点那种,会自动将焦点转移到下个可以获得到焦点的view

2022-12-06 11:07:05 1118

转载 ssh生成私钥无法clone或拉取代码

创建私钥和公钥,将公钥设置到git仓库。再次clone,success!换一种加密方式ed25519。

2022-11-11 14:42:33 444 1

转载 Android 设置ImageView宽度固定,其高度按比例缩放适应

首先,定义ImageView,在该ImageView中,我们需要设置属性android:adjustViewBounds="true",他的意思图片是否保持宽高比。切记的一点是该属性需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。 <ImageView android:id="@+id/img_list" android:layout_width="fill_parent" android:layout_he...

2021-04-01 10:58:55 936

原创 DialogFragment setCanceledOnTouchOutside NullPointerException

DialogFragment.getDialog.setCancelable(false);DialogFragment.getDialog.setCanceledOnTouchOutside(false);NullPointerException调用时机晚些即可比如在onCreateView中调用

2020-06-09 14:32:39 446

原创 Observable map doOnNext

Observable map和doOnNext跟在.subscribeOn(Schedulers.io())或.observeOn(AndroidSchedulers.mainThread())后面会执行在对应的线程

2020-01-22 14:34:01 347

原创 webview canGoBack() 多次返回true

in shouldOverrideUrlLoading you can't invoke view.loadUrl........} else if (url.startsWith("http://") || url.startsWith("https://")) {// view.loadUrl(url); 此处使用不当,导致如题问题// ...

2019-12-23 17:53:31 2125

原创 remoteview设置渐变色

某些场景如自定义notification设置GradientDrawable效果,需要通过转为bitmap实现,drawable(包含GradientDrawable)转为bitmappublic Bitmap convertToBitmap(Drawable drawable, int widthPixels, int heightPixels) { Bitmap mutabl...

2019-12-03 16:58:03 354

原创 appsflyer 深度连接

appsflyer 深度连接app分享1.生成h5url,根据要求写h5,第三方社交app通过h5生成分享内容2.点击链接进入h53.点击h5内appsflyer连接(添加深度连接即再连接后加?af_dp=xx),点击跳转APP,app收到的为af_dp值(即深度连接)https://support.appsflyer.com/hc/zh-cn/articles/208874366-...

2019-11-26 16:43:59 1671

原创 一个简单问题搜罗出一堆问题

Web点击按钮无响应(按钮功能是如本地没有app,点击下载,下载后再点击安装)追查出一些问题1.SDK内部搜集设备号,调用tm.getDeviceId()前没有申请权限导致异常,也没有捕获异常,后续流程没有执行到设备号属于隐私,需要额外申请权限2.8.0及以上系统会出现红色报警,无法正常显示页面可以解决域名问题,也可以程序上针对8.0及以上系统关闭该安全策略if (Build.VERS...

2019-11-01 14:39:12 178

转载 PendingIntent, Notification,broadcastReceiver使用遇到的坑

转载自https://www.itread01.com/content/1542816187.htmlPendingIntent, Notification,broadcastReceiver使用遇到的坑使用PendingIntent結合 alarmManager 傳送定時廣播,收到廣播的時候顯示notification的功能,遇到了好多坑。先上程式碼:一、pendingInten...

2019-10-24 18:07:21 605

原创 recyclerview嵌套总结

案例介绍:外层recyclerview(VERTICAL)内层几个recyclerview(HORIZONTAL)CASE 1 内层列表存在滑动位移时,出现不同列表位置错乱情况分析:外层列表ViewHolder复用所致解决办法:1.一个内层列表单独为一个itemtype2.考虑外层onBindViewHolder里对错乱视图进行复位处理CASE 2 上下滑动有卡顿情况分...

2019-10-10 10:39:07 180

原创 android 非SDK API blacklist处理

现象:Android P上的提醒弹窗 (Detected problems with API compatibility(visit g.co/dev/appcompat for more info)用veridex检测一堆问题,优先解决blacklist问题#22: Reflection blacklist Landroid/service/media/IMediaBrowserServ...

2019-08-29 21:49:42 1005 1

原创 andriod 开发随手备忘

btn_record.getLocationInWindow(location); //获取在当前窗口内的绝对坐标btn_record.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标UI刷新确保刷新是在Ui线程,如下面代码在子线程刷新无效adapter.notifyDataSetChanged();...

2019-06-29 10:26:04 107

原创 recyclerview item 高度不正确

recyclerview 添加view一般都会public BaseViewHolder newViewHolder(ViewGroup parent, int viewType) {return new ViewHolderNormal(LayoutInflater.from(parent.getContext()).inflate(R.layout.xxx, parent, false)...

2019-04-17 10:11:41 2738

原创 判断是否在主线程

public static boolean isOnMainThread() { return Looper.myLooper() == Looper.getMainLooper(); return Thread.currentThread() == Looper.getMainLooper().getThread();}public static void assertMain...

2019-04-12 18:26:00 1028

原创 objectbox数据库

总结下objectbox数据库使用中遇到的坑和使用技巧1.编译时xx类找不到,你必须先保证除了数据库相关代码之外的代码中没有错误,可以直接通过命令行执行看具体编译错误原因,最后rebuild下2.objectbox-models别忘记提交版本管控,否则升级会崩溃3.修改表结构记得加@Uid(4279138568760652606L),开发阶段自己决定是否添加,这充其量算个浅浅的坑4...

2019-04-12 17:18:26 406

原创 圆角 RoundedBitmapDrawable

RoundedBitmapDrawable bitmapDrawable = RoundedBitmapDrawableFactory.create(view.getContext().getResources(), bitmap); bitmapDrawable.setCornerRadius(finalRadius); // 圆角bitmapDrawable.setCircular(true...

2019-04-10 21:12:20 190

原创 rxjava备忘

.subscribeOn(Schedulers.io())设置这个会将所有流程都置于线程中包括map、faltmap、doOnNext以及订阅回调等,当然如果在这些操作符之前指定线程则会在指定线程执行rxjava内提供一些线程处理工具控制在Ui线程执行AndroidSchedulers.mainThread().scheduleDirect(new Runnable() { ...

2019-04-10 17:06:33 114

原创 gradle用法备忘

//给生成的apk文件重命名, applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && ou...

2019-04-10 10:55:44 95

原创 SVGA动画方案备忘

想了解SVGA:https://www.jianshu.com/p/dfa16d9d67cd想看看效果:http://svga.io/svga-preview.html想在android项目使用:https://github.com/yyued/SVGAPlayer-Android想在ios项目使用:https://github.com/yyued/SVGAPlayer-Ios坑:...

2018-12-20 17:41:16 1056

转载 android 源码下载

android 源码下载需要工具如下:下载git,安装 官方下载:https://git-scm.com/downloads/,下载python,安装 官方网址:http://www.python.org打开Git Bash,执行命令,我是放在c盘的,路径可自定义git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest.g...

2018-11-10 21:34:23 216

原创 java Thread yield notify notifyAll wait sleep小节

sleep:调用sleep使任务进入休眠状态,任务在指定的时间内不会运行,锁没有被释放。yield:此刻让出cpu,所有线程再次竞争cpu使用权,锁未被释放如果Thread1和Thread2都使用synchronized (object),Thread1调用yield,Thread2也不会被执行,要等object锁被释放才可以。wait:使线程挂起,知道线程得到了notify或noti...

2018-11-04 21:53:20 167

原创 tab+viewpager+fragment白屏问题

有两个方案解决:1.viewpager设置setOffscreenPageLimit($tabcount)点评:如果有十几个tab消耗内存太多,不是最佳方案2.viewpager使用FragmentStatePagerAdapter而不是FragmentPagerAdapter点评:使用FragmentStatePagerAdapter可以确保销毁的fragment重新创建...

2018-09-10 15:15:58 949

原创 MIUI9 关闭USB安装应用弹出提示解决办法

看了许多帖子没有解决问题,这里写下来备忘。安全中心-&gt;应用管理-&gt;点击右上角‘权限’,进入授权管理界面-&gt;点击右上角设置-&gt;关闭应用权限监控和USB安装管理(仅关闭USB安装管理无效)建议:自用机器最好别这样设置以免造成损失,因为存在安全隐患终于可以随心所欲写一些脚本操作应用了      ...

2018-05-24 15:49:45 18134

原创 webview显示异常,有时偏大有时偏小

webview多次加载url容易导致页面显示异常,出现问题的机型有oppo、魅族等,切记!

2017-07-07 14:15:13 1376

原创 联运游戏-支付流程

小米先关支付https://dev.mi.com/doc/p=3460/index.html

2017-06-03 08:25:26 1329

转载 Glide常规用法

转自 http://www.cnblogs.com/whoislcj/p/5558168.htmlAndroid图片缓存之初识Glide前言:     前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实现方案不能满足项目的

2017-05-28 07:58:58 413

Android Webkit

webkit一些资料,网上搜集的,有类图、时序图,和简要的介绍,希望对您有用。

2012-08-04

Javascript权威指南

Javascript 经典2011最新版本 权威指南 第六版 Javascript权威指南

2012-07-14

HTML5教程pdf版

HTML5教程pdf版

2012-07-06

rarlinux ,rarlinux

rarlinux,linux下压缩、解压软件,很好用

2010-03-18

SQLiteSpy 工具

SQLiteSpy_1.8.12,SQLiteSpy_1.8.12.zip

2010-03-18

Android水波特效

android 特效,水波效果,还可以,

2010-03-18

Android开发教程

Android开发教程,个人笔记,入门可以看一下

2010-03-18

Android Intent机制实例详解

Android Intent机制实例详解,讲的比较详细,与大家分享,也是想得到积分呵呵。

2010-02-22

MoreEffectiveC++中文

MoreEffectiveC++中文,很好用的哦,大家赶快来下载吧

2010-02-08

空空如也

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

TA关注的人

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