- 博客(8)
- 资源 (5)
- 收藏
- 关注
原创 第四章 AMS深入浅出
一个App是可能有多个TaskRecord存在的,一般情况下,启动App的第一个activity时,AMS为其创建一个TaskRecord任务栈特殊情况,启动singleTask的Activity,而且为该Activity指定了和包名不同的taskAffiffiffinity,也会为该activity创建一个新的TaskRecord。对AMS 调用轨迹分析是我们破解AMS的第一条线,希望读者反复阅读,以真正理解其中涉及的知识点,尤其是和Android运行环境及Context相关的知识。
2023-06-16 09:39:21
238
原创 第三章 Android系统启动流程
Android系统是基于Linux系统,所以当我们开机的时候,第一个启动的是Init进程,而后面所有的进程都是Init的子进程,Zygote就是Init进程通过解析init.rc文件之后,启动的一个进程。在运行Android程序后首先会启动init 进程,此进程是Linux 系统中用户空间的第一个进程,进程编号为1。多线程问题:zygote是通过fork生成进程的,而多线程是不允许使用fork的,否则可能造成死锁,同时binder又是多线程的,所以干脆不同binder而使用socket。
2023-06-16 09:26:08
267
原创 第二章 JNI详解
否则,它返回一份副本。Java方法被调用时,JVM会生成对应的 native 方法名,例如 com.example.StrHelper.getStr() ,JVM会在JNI库中查找 Java_com_example_StrHelper_getStr 函数,如果找到了,就会保存一个该 JNI 函数的指针,直接调用该指针。我们都知道,java的数据类型和C/C++的数据类型并不一致,典型的例子是:java中的String是一个引用数据类型,但在C语言中的String是以NULL结尾的字符串数组。
2023-06-16 09:19:00
338
原创 Android常用类-TimeUnit的使用
//关于秒的常用方法 TimeUnit.SECONDS.toMillis(1) 1秒转换为毫秒数 TimeUnit.SECONDS.toMinutes(60) 60秒转换为分钟数 TimeUnit.SECONDS.sleep(5) 线程休眠5秒 TimeUnit.SECONDS.convert(1, TimeUnit.MINUTES) 1分钟转换为秒数 //TimeUnit.DAYS 日的工具类 //TimeUnit.HOURS ..
2022-01-12 16:16:44
2359
转载 一款好用的终端工具—MobaXterm
对于一名开发,少不了要经常和Linux服务器打交道,如何操作Linux服务器呢?这就需要一个终端工具了。1、终端工具HaC我用过好几种终端工具,包括winScp、XShell、SecureFXP、xftp。终端工具是分两种的, 一种是SSH,命令操作模式 ssh 一种是FTP,可视化,可以很方便的上传和下载文件。 ftp 2、MobaXterm介绍其实HaC我一直是使用SecureCRT和SecureFXP的,这两款工具功能已经很强大了,但是要..
2021-08-22 20:20:02
950
原创 Android Service的生命周期
Android Service的生命周期一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个servic
2020-12-24 15:19:17
655
转载 常用滤波算法比较及复合算法优缺点分析
数字滤波方法有很多种,每种方法有其不同的特点和使用范围。从大的范围可分为3类。1、克服大脉冲干扰的数字滤波法(一). 限幅滤波法; (二).中值滤波法2、抑制小幅度高频噪声的平均滤波法(一).算数平均;(二).滑动平均;(三).加权滑动平均;(四)一阶滞后滤波法3、复合滤波法 下面介绍常用的8种滤波方法:(一)克服大脉冲干扰的数字滤波法:克服由仪器外部环境...
2018-08-10 22:29:34
5539
live-app-android-master.zip
2022-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人