- 博客(38)
- 收藏
- 关注
转载 2021-01-30
转自:https://blog.youkuaiyun.com/pigdreams/article/details/109268249以备查用目录转自:https://blog.youkuaiyun.com/pigdreams/article/details/109268249以备查用Android am与pm命令详解1.am命令大全1.1启动Activity1.2 启动与停止服务1.3 其余命令2.pm命令大全2.1 获取基本信息2.2 打印应用列表2.3 获取intent路径
2021-01-30 13:39:50
1273
转载 10个堪称神器的学习网站
转----10个堪称神器的学习网站01、大学资源网大学资源网是一个完全免费并且功能非常强大的学习网站,它免费提供了丰富并且全面的学习视频教程,并且视频课程一直在更新,非常良心。我比较看重的是它里面的考研视频教程,有数学、英语、政治、专业课等等;还有英语视频课程,对于一名程序员来说,如果想要变得更优秀,英语是不可或缺的。另外,我看到它还贴心的支持:小学课程、初中课程、高中课程。挑...
2020-03-09 11:08:54
8900
1
原创 Android Doze模式模拟和恢复
Android Doze模式模拟从Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户。用户管理可以在没有充电的情况下管理app的行为。当用户一段时间没有使用手机的时候,Doze模式通过延缓app后台的CPU和网络活动减少电量的消耗。App Stanbdy延缓用户最近没有使用app的后台网络活动。作为移动开发人员,我们开发的App...
2019-12-25 14:47:28
757
转载 应用Binder线程耗尽导致systemserver anr并重启问题
SystemServer ANR 最终导致重启的分析涉及文件:1 bugreport2 BinderTrace3 WDTAA :从Bugreport中找到kill system_server的关键字,如下:W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in handler on i/o thread (and...
2019-05-28 15:33:26
13045
3
原创 Android应用线程池最大线程数量
Android应用线程池最大线程数量线程池的大小经验值一般这样设置:(其中N为CPU的核数)如果是CPU密集型应用,则线程池大小设置为N+1如果是IO密集型应用,则线程池大小设置为2N+1那么我们的 Android 应用是属于哪一种应用呢?看下他们的定义。I/O密集型I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是...
2019-04-23 14:48:24
3527
原创 Android :Process xxxxx (pid xxxxx) has died
该log所在文件处:frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.javafinal void appDiedLocked(ProcessRecord app, int pid, IApplicationThread thr...
2018-12-20 11:03:40
2217
转载 Android ANR分析三
Keeping Your App ResponsivePreviousNextIn this documentWhat Triggers ANR? How to Avoid ANRs Reinforcing ResponsivenessYou should also readBackground Optimizations Intelligent Job-Schedulin...
2018-12-03 15:56:29
278
转载 Android ANR分析二
定义主线程在特定的时间内没有做完特定的事情常见的场景 A.input事件超过5S没有处理完成 B.service executing 超时(bind,create,start,unbind等等),前台20s,后台200s C.广播处理超时,前台10S,后台60s D.ContentProvider执行超时,20s常见的原因 A.耗时操作...
2018-12-03 15:30:39
1922
转载 Android ANR分析一
一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:Servi...
2018-12-03 15:28:56
654
转载 如何查看应用是否存在内存泄漏
查看内存信息:一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USSVSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实...
2018-12-03 15:19:41
11989
原创 基于linux的patch生成及使用方法
1. 对单个文件打patchold.txt为原文件,new.txt 为已修改后的文件,现在要做的是:制作patch,更新old.txt文件(1)查看文件内容[wln@localhost 02]$ cat old.txt 123456qwertdasfgfdsaf[wln@localhost 02]$ cat new.txt 1123456qqwertda
2017-04-07 14:47:19
667
原创 android screen pinning音效
Android 手机在设置了“security-->screen pinning”后,待机2分钟左右出现有频率的同一种声音. 经查,Android原生即是如此,该音效是代码里面主动添加的,主要是为了提醒end user输入PIN的一个提示音,也标志着加密手机动作的完成。 具体位置是在/packages/apps/Settings/src/com/android/settings/CryptKeep
2017-03-29 13:21:01
552
原创 java中array长度问题
对java中的数组一直有疑问,特别是数组中尤其是多维数组的长度问题。下面通过实例来说明:eg code:[java] view plain copypackage com.test; public class Test { /** * @param args */
2016-12-05 14:15:30
1549
原创 Android N新特性 : Direct Boot Mode[DBM]
Android N引入了一个新特性: Direct Boot Mode—— 设备启动后进入的一个新模式,直到用户解锁(unlock)设备此阶段结束。在此 Direct Boot Mode 下 APP 比较适合做一些:Alarm、clock 类的操作,如闹钟需要做重要的或紧急的通知,如短信应用底层服务类,如辅助工具服务请注意,以上并非详尽的用例列表,我们期待看到还有哪些类
2016-11-29 19:14:59
7765
转载 HTTP工作原理
1. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 在了解HTTP如何工作之前,我们先了
2016-10-14 11:20:08
514
转载 Android 首次开机优化
为了解决Android首次开机速度过慢这个问题,需要首先了解Android首次开机的时间都消耗在什么地方.优化工具我们可以借助 Bootchart工具进行分析,Using Bootchart on Android总结起来步骤如下:在/system/core/init 下的mk中添加INIT_BOOTCHART:=true 编译控制命令在BootChart.h中修改#
2016-10-10 19:07:12
2843
原创 Binder
1.binder通信概述 binder通信是一种client-server的通信结构, 1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用; 2.实际上,代理接口中定义的方法与server中定义的方法是一一对应的; 3.client调用某个代理接口中的方法时,代理接口的方法会将client传递的参数打包成为Parc
2016-09-30 14:41:28
483
原创 Program Famous Thinking
"UNIX很简单。但需要有一定天赋的人才能理解这种简单。" ------Dennis Ritchie"软件在能够复用前必须先能用。" ------Ralph Johnson"我们这个世界的一个问题是,蠢人信誓旦旦,智人满腹狐疑。" -----–Bertrand Russell"用代码行数来测评软件开
2016-09-12 11:05:44
377
原创 进制转换
进制之间的转换是程序员在日常开发过程中会经常使用到的一种常识性的东西,但有必要能够快速转换以提高计算和编码效率,以下总结一下常用的进制转换的算法:1>.10进制转N进制用10进制数值/n,得余数,直到10进制的值小于n,把所有余数排序颠倒,得到n进制的值。(小数部分算法:用10进制数值小数部分*n,记录新结果的整数部分,直到连续记录多次都为零时,停止记录。如遇无限循环小数,给予最大记录
2015-05-13 14:39:27
1338
原创 linux C编程之一
Linux环境C编程基础一.编译/** name hellword.c @author hg */ int main() { printf("Hello"n"); return 0 ; } 最简单的编译方法是 gcc hellowro
2015-03-03 16:06:44
421
原创 linux环境在程序中打印调用栈的方法
#include #include #include #include void print_trace(void); void mytrace(void){ int j, nptrs; #define SIZE 100 void *buffer[100]; char **strings; nptrs = b
2014-06-27 14:44:29
733
转载 coredump详解
一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆
2014-06-27 10:46:03
791
原创 Android打印调用栈
打印调用栈是android平台问题定位的基本方法,如果需要知道谁在调用某个函数,可以在此函数中添加打印调用栈函数,弄清楚函数之间的调用关系。1.Java层打印调用栈方法RuntimeException here = new RuntimeException("here");here.fillInStackTrace();Log.w(TAG, "Called: " + thi
2014-06-26 17:23:32
994
转载 uboot向内核传递Flash的分区信息
1.对nand的分区。修改mtdparts环境变量就可以了么?对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置.set bootargs noinitrd console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2 mt
2013-09-24 15:10:34
1654
转载 linux系统启动[kernel与rootfs映射到nandflash的途径]
初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里面设置的一个启动命令: nand read 0x30007FC0 0x100000 0x200000;bootm 0x30007FC0 即:先去读取nand f
2013-09-24 10:35:58
1212
转载 单播、多播和广播
单播、多播和广播 “单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思? ——★单 播★—— 网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之
2013-09-20 17:05:59
937
转载 DMA数据传输过程
一.DMA方式特点: 1、 外部设备的输入输出请求直接发给主储存器。 主存储器既可以被CPU访问,也可以被外围设备访问。因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级。 2、 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。 由于在外围设备与主存储器之间传送数据不需要执行程序
2013-09-20 10:51:35
4068
原创 LINUX kernel development之添加内核模块并加入选项菜单
一.LINUX Kernel Module LINUX Kernel是组件模式的,所谓组件模式是指:LINUX Kernel在运行时,允许“代码”动态的插入或者移出Kernel。 所谓模块是指:相关的一些子程序,数据、入口点和出口点共同组合成的一个单一的二进制映像,也就是一个可装载的Kernel目标文件。 模块的支持,使得系统可以拥有一个最小的内核映
2013-09-18 16:24:08
1536
转载 Kconfig/Makefile/driver add to menuconfig
内核源码树的目录下都有两个文档 Kconfig (2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了 所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这 个.conf
2013-09-17 17:48:54
1075
原创 sleep与usleep
sleep函数:usleep(n) //n微秒sleep(n)//n秒例程:#include int main(int argc,char **argv){ printf("Start.....\n"); sleep(3); //停留1秒 //usleep(1000*1000*10); print
2013-09-16 16:50:31
854
转载 Select函数分析
Select在Socket编程中比较重要,可对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式non-
2013-09-11 13:50:43
757
转载 setsockopt与getsockopt的用法
功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#i
2013-09-11 10:26:00
1069
转载 tab与blank
空格还是Tab?用空格的原因:1.各人的缩进习惯不同.网上参与讨论的人中,有人习惯用一个空格缩进的,有人用两个,还有用四个的.但是用tab不可以实现这样的功能.一般在编辑器中就是四个字符宽度.2.C++和pascal编译器对文本中TAB的识别问题.TAB在字符串中出现做为缩进时,可能会出现 "string literal has a character with value 0
2013-09-09 09:22:55
904
转载 linux socket buffer设置
linux系统提供的socket缓冲区大小为8K,你可以将之设置为64K,尤其在传输实时视频时。 使用socket发送数据时先把数据发送到socket缓冲区中,之后接收函数从缓冲区中读取数据,如果发送端特别快的时候,缓冲区很快就被填满(默认1024×8=8192字节),我们可以根据情况设置缓冲区的大小,通过setsockopt函数实现 #include #inclu
2013-09-06 10:32:32
7748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人