- 博客(27)
- 资源 (9)
- 收藏
- 关注
原创 稳定性问题ANR-input
Android app的input事件都是有主线程消费的,假设主线程有耗时函数执行,就会产生ANR问题;但是主线程就不能执行耗时函数吗?答案是能;同理解释了一下主线程中的耗时函数只要不碰到ANR问题的检测诱因,就不会产生ANR;假设一个APP不接受任何广播,不处理任何input事件(如后台程序),并且已经启动就绪之后,这个时候主线程执行耗时操作永远不会产生ANR。同理可知,广播和input事件也是ANR问题的一个检测点。
2024-06-01 00:14:53 324
原创 Android ANR简介
ANR检测点逻辑都在system_server进程中,假设如果system_server出现hang的场景,ANR逻辑有可能就不会被触发。而且ANR都是针对Android app的机制。因此每种机制中都会依据App当时的状态,如前台还是后台等行为,进行特殊处理。
2024-05-28 08:25:49 408 1
原创 Android进程间通信之binder - 上层协议IPCThreadState
这一篇文章比较偏理论,具体的实现细节需要结合binder驱动去分析,本文只从用户空间的角度去展示了代码逻辑,驱动层的实现需要将整个上层分析完之后,进入驱动,才会游刃有余。
2022-10-23 21:54:44 861 1
原创 Android进程间通信之binder - debug transaction
Android进程间通信之binder - 实战Android进程间通信之binder - 几个重要数字Android进程间通信之binder - 可能导致的异常Android进程间通信之binder - 重要工具aidlAndroid进程间通信之binder - 上层协议IPCThreadStateAndroid进程间通信之binder - 工具类Parcelandroid使用binder做进程间通信方式;同时提供aidl和hal工具,使得app开发相对与进程间通信是透明的;只需要了解aidl的
2022-06-04 21:19:42 793
原创 Android进程间通信之binder - debug transaction
目录概述编写测试用例dsaAndroid进程间通信之binder - 实战Android进程间通信之binder - 几个重要数字Android进程间通信之binder - 可能导致的异常Android进程间通信之binder - 重要工具aidlAndroid进程间通信之binder - 上层协议IPCThreadStateAndroid进程间通信之binder - 工具类Parcel概述编写测试用例debug信息在没有出现binderfs文件系统以前
2022-04-16 19:02:19 2375
原创 Android进程间通信之binder - 可能导致的异常
在平常程序运行过程中,可能碰到最多跟binder相关的异常是RemoteException,但本文只分析跟binder机制相关的异常,而RemoteException是server端逻辑导致的其它异常在client端的表现。跟binder机制相关的异常有:android.app.RemoteServiceException: can't deliver broadcast,JavaBinder: !!! FAILED BINDER TRANSACTION !!!,TransactionTooLargeEx
2021-02-26 00:11:31 11333 12
原创 Android进程间通信之binder - 几个重要数字
本文Android代码来源androidxref.com的Android11版本。从binder环境初始化开始,讲述这几个在binder中需要掌握的数字。首先我们思考这么几个问题;1,binder环境是什么时候初始化的?2,这些数字是如何被设置的?3,binder传输malloc内存是谁的内存?4,binder线程池线程是如何增长的?5,为什么zygote没有初始化binder?6,ams启动进程,跟zygote通信方式为什么选用socket?
2021-02-24 00:54:51 3541 3
原创 Android 进程间通信之binder - 实战
我们从binder由来开始说起,说说Android在binder的规范写法和非规范的写法;应文章标题,通过实战代码讲述binder传输内容的组织形式。分别用java和c++两种语言实现binder通信;分析本地binder和远程binder;实现一个实名binder。
2021-02-21 15:45:34 2706 6
原创 android 进程间通信之信号--signal
目录信号-signal信号-实例android使用信号的场景信号原理概述信号-signallinux中信号用来作进程间通信,处理信号的进程需要注册关心的信号,当其它进程给自己发送信号时,注册的信号处理函数会被执行;在此预设3个问题;1:信号是如何发送的?2:信号是在什么时间节点上执行的?(即执行时机,处理方式)3:信号被项目需求导致在不同场景注册,信号是怎么执行的?(即同一个信号被多次注册处理函数,各个大公司如何实现native crash检测sdk)系统中支持信号,
2021-02-21 09:08:53 966 4
原创 Android 进程间通信之信号量 - semaphore
本文是android进程间通信专栏中的信号量(semaphore)部分,因为上一篇管道文章详细说明了实例代码的测试环境,从本篇开始按正常顺序讲解,从简介到实例,再到Android中使用场景的讲解;详细介绍具体的使用场景。
2020-05-28 19:28:09 874
原创 Android 进程间通信之管道 - pipe
本文是android进程间通信专栏中的管道(pipe)部分,管道基于pipefs文件系统实现,通过实例了解管道进程间通信,因为是本专栏第一个实例,在本文中有配置编译的说明;大家可以想想为什么需要IPC通信;摘自man手册管道分为匿名管道合命令管道(指定一个文件),通过系统调用返回时创建两个fd,一个fd用了读,另一个fd用来写,只能在具有亲源关系的进程之间用来通信,可以设置read方式为block;
2020-05-26 19:40:21 1467
原创 Tombstone 文件分析
Tombstone 文件分析/** 下面信息是dropbox负责添加的**/isPrevious: trueBuild: Rock/odin/odin:7.1.1/NMF26F/1500868195:user/dev-keysHardware: msm8953Revision: 0Bootloader: unknownRadio: unknownKernel: Linux
2020-05-26 09:45:15 1609
原创 android 远程显示设备与本地设备坐标转换
前段时间在做一个android设备控制android设备的程序,写了一个获取坐标的点,由于使用太多的if else判断条件,虽然能实现获取x,y的功能,自己写的自己看着就已经头晕了,于是今天花了点时间,整理了一下。我实现的场景是,当我的手机被投射到另一个android设备上,通过surfaceview显示手机屏幕(视频流),我不知道手机是竖屏还是横屏,如果在显示端坐处理,只能比较图片,看那边有黑边。
2016-04-23 13:37:49 661
原创 Android AIDL 进程间通信详解
前言相信大家在换工作或者在工作中,都会遇到AIDL相关的知识,相信大家在Android应用程序中使用AIDL不会有太大问题,更具网络上的相关信息,都能实现程序进程间通信所需,因为被Android封装后,随便定义一个文件就会轻松实现。最让人头疼的,不是我们都不会使用,而是在面试的时候,那些个刚刚工作一两年的小白面试你的时候就会为难你,并不是每个程序员都有时间去把所有原理通过源代码分析出来。鄙人刚毕业做
2016-03-25 09:23:27 464
原创 Source Insight 工具使用记录
目录前言自定义添加的功能效果预览图格式化代码AStyleCoolFormat引入第三方的头文件执行bat脚本文件结束前言第一次使用source insight实在大三,应该是2011年,那个时候对编辑工具编译器不是很了解,用的最多的ide工具就是vs2003,虽然可以添加第三方的dll库和头文件编写代码和编译程序,但对于linux内核代码用什么工具看或者修改,都不知道。头一次使用a
2016-03-20 11:39:35 3577
转载 实现Android 动态加载APK(Fragment or Activity实现)
尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38565345 最近由于项目太大了,导致编译通不过(Android对一个应用中的方法个数貌似有限制),所以一直琢磨着能否将某些模块的APK不用安装,动态加载,通过在网上查找资料和网友的帮助,终于实现了APK的动态加载,网络上介绍APK动态加载的文章非常多,但是我觉得写得非常好的就是这位
2016-03-02 09:36:54 503
原创 重写ImageView控件导致浮动menu位置为初始状态
问题描述:自己重写了ImageView控件,增加了OnTouch事件,使用矩阵操作实现了放大缩小,偏移等操作,当图片缩放至小于窗口的大小时居中显示,当多张图片之间相互切换时,当在ImageView上设置第二张图片时,之前移动的浮动menu的位置返回到了初始位置。带着问题我们一起深入。。。。。。 对于问题我们排除我们自己代码的问题导致此问题,再次我就不分析我的代码了,我明确知道是因为设置Ima
2015-11-20 11:17:56 587
原创 Android系统setting中读取apk的属性
在Android系统中所有的文件,可以点击menu菜单弹出更多选项,其中一个功能为分享,我们可以将自己apk在编译是添加属性,以至于在系统的任何位置点击分享,也能看到我们自己的程序。今天的重点不在此 分享上,关于分享我这儿看到一篇文章,http://blog.csdn.net/xyz_lmn/article/details/16856843着实不错。 上面的分享贴一张图片 今天我想介绍的是
2015-11-02 23:35:08 1660
原创 vlc播放视频(加载视频到内存,解码rmvb视频出现马赛克)
每次seek位置之后重新加载cache,加载完成之后解码第一张图片,返回来,因为是软解,很多情况下都是带有马赛克。 …… else if( newval.i_int == INPUT_EVENT_CACHE ) { event.type = libvlc_MediaPlayerBuffering; event.u.media_player_buffer
2015-10-16 17:58:34 3269
原创 windows 远程桌面 Ubuntu14.04 配置记录
本人没有使用windows附件中自带的远程桌面,是因为每次远程登录出现的桌面都是新的。之前操作的记录以及打开的文件都不在了。 选用vnc-viewer,下载window版本的安装: 1.在Ubuntu系统上安装vnc4server命令:sudo apt-get install xrdp2.此处可以安装kUbuntu-desktop或者xUbuntu-desktop,也可以选择不安装 下面为
2015-10-10 16:10:42 1205
原创 视频黑场检测算法
视频黑场检测一般应用在数字电视领域。 就我目前遇到的需要检测视频黑场主要是在视频播放器读取视频缩略图时,取有图像的视频帧解析成图片。 算法的原理是在一帧图像上取几个不同区域,对该区域进行计算。如果提取之前用ffmpeg 的swscale函数进行了rgb转换,判断该区域是不是黑色就没有难点。但这样会牺牲效率; 引用别人的算法原理:(都是好几年前的算法) 数字电视图像层静帧和黑场报警的判断算法
2015-09-15 18:02:57 4721
原创 vlc 播放器的播放进度条的时间不刷新
有些视频如(rmvb)视频在使用vlc播放器播放时会出现进度条不能刷新的问题, 。。。。。。。。。上面是对整个vlc播放器源码的分析,至于对time当前时间不更新,是解码时间的参数有问题,我的解决方法,直接升级ffmpeg解码模块。找到ffmpeg源码所在目录,修改sh文件。将下载最新的源码拷贝进去编译。生成静态库。问题完美解决。
2015-09-14 19:57:12 8217
原创 Android 4.4.4 在线播放mp3文件存在的问题
Android写一个很简单的mediaplay播放:在构造函数中创建对象,设置监听 mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setOnBufferingUpdateListener(this); mediaPlay
2015-09-02 15:17:47 1390
原创 内存对齐那些事
自己在网上爬了好久,终于总结出一点关于内存对齐心得,贴在网上,给刚学习的朋友做个敲门砖,要是大牛们觉得哪儿不合适可以给我留言,立马改正。GNU是一个自由软件工程项目。GNU创始人StallmanGNU的官方网站 http://www.gnu.org/,而他们最牛逼的就是gcc这个编译工具在Linux中使用gcc编译程序,那我们在一些个结构体或者枚举时会关心到关于内存对齐的问题,下面就
2013-11-17 00:48:00 551
原创 C语言回调函数
回调函数:如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,即调用者提供一个函数但自己不去调用它,而是让实现者去调用它,这称为回调函数(Callback Function)。先理解一下关于指针数组的概念,定义一个指针数组,int *[3] p;这种定义只能从理解上对我们有帮组,但真正的指针数组却不能这么定义,int *p[3];函数指针,或许我们这么定义从理解上对我
2012-08-24 11:46:04 653
source insight配置文件
2016-03-20
mfc单文档应用程序实现了formview界面切换和dialog布局
2012-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人