自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(517)
  • 资源 (7)
  • 收藏
  • 关注

原创 编程通用知识点

编程通用知识点做iOS和Android开发后,发现有些知识点是共通的,就做下记录吧密码学在编程中,需要对数据进行加密、解密,在打包ipa、apk的时候,需要证书、数字签名等密码学概述漫游对称加密算法翱游公钥密码算法消息的“指纹”是什么?消息认证码是怎么一回事?无处不在的数字签名随处可见的公钥证书...

2021-11-10 09:12:39 3294

原创 Postman使用

可以请求、集合或文件夹中添加Pre-request Script,在请求运行之前执行JavaScript如设置变量值、参数、Header和正文数据,也可以使用Pre-request Script来调试代码,如将日志输出到Postman Console执行顺序如下:对于集合中的每个请求,脚本将始终根据相同的层次结构运行。集合级脚本(如果有)将首先运行,然后是文件夹级脚本(如果有),然后是请求级脚本(如果有)。请注意,此执行顺序适用于预请求脚本和测试脚本。

2023-12-27 15:26:16 679

原创 Android车机测试总结

最近一段时间在做车机测试,通过测试用例和实车测试,也可以正向反馈指导开发工作不同的车辆上的车机上的功能应用,如蓝牙电话、多媒体、空调、相册等功能都有相似之处,可以用相似的测试用例去套用记录下我自己的一些理解1.对于多媒体的测试,如音频、视频、图片,需要各种封装格式、不同分辨率的音频、视频、图片素材,方便完全模拟各种情况。最好是测试团队能保存共享一份这样的知识库2.在车载中,本地多媒体一般包括三个模块,收音机、蓝牙音乐、USB音乐。

2023-08-19 15:24:04 723

原创 Mac M2 Pro安装使用Cocoapods

在新公司要做iOS开发,所以在新电脑上安装Cocoapods在升级gem,,和安装cocoapods原因大概是:Apple已内置安装了ruby,不能修改其中的一个解决办法就是,可通过安装ruby版本管理器来解决,如chruby或者RVM。

2023-08-13 21:47:38 1823

原创 C++ cin

这意味着cin会读取一个单词,读取单词后,cin将字符串放到数组中,并自动在结尾处添加空字符。使用空白(空格、制表符和换行符)来确定字符串的结束位置。如下的例子,用户输入的字符串有空格。内容来自《C++ Primer》运算符从输入流中抽取字符。可见,虽然本意是输入。

2023-07-18 10:24:22 389

原创 adb shell dumpsys SurfaceFlinger

硬件混合渲染器 (HWC) HAL 用于确定通过可用硬件来合成缓冲区的最有效方法。作为 HAL,其实现是特定于设备的,而且通常由显示硬件原始设备制造商 (OEM) 完成。硬件混合渲染器 (HWC) HAL 用于合成从 SurfaceFlinger 接收的图层,从而减少 OpenGL ES (GLES) 和 GPU 执行的合成量。此命令输出的内容不较多,可以将输出内容重定向到一个文件中。分析Android 系统图层。另外过滤上一节提到的。

2023-07-12 10:22:52 1798

原创 WindowContainer相关类

该类是对应着显示屏幕的,Android是支持多屏幕的,所以可能存在多个DisplayContent对象。上图只画了一个对象的结构,其他对象的结构也是和画的对象的结构是相似的。:根窗口容器,树的根是它。:该类是对应着显示屏幕下面的,代表一组窗口合集,具有多个子类,如。的孩子,对应着窗口层次的第2层。定义了能够直接或者间接以层级结构的形式持有窗口的类的通用功能。:它是输入法窗口的容器,它的孩子是。,应用层的窗口是处于第2层。类,其实它的孩子类型也可以是。:任务,它的孩子可以是。是对应着一个窗口的。

2023-06-25 11:54:42 350

原创 窗口层级树的构建

在上一节这些标识符在哪里呢?

2023-06-25 08:52:09 252

原创 屏幕的窗口层级

表示将对应的layer设置为。

2023-06-20 17:13:25 311

原创 dumpsys activity containers

可见所有的Activity相关的页面,都是挂载在。可以查看当前容器层级信息。

2023-06-20 15:20:27 356

原创 AOSP编译

可通过top命令,实时查看内存的消耗情况,如果不够,继续加大虚拟内存。通过添加虚拟内存的方式解决。

2023-06-17 19:08:49 1500

转载 BootAnimation Format

【代码】BootAnimation Format。

2023-05-29 14:53:26 118

原创 Android系统内置应用

客户提供APK,需要集成进系统,并且不可卸载已Launcher3为例,apk是位于目录下。

2023-05-27 15:00:16 1621

原创 Activity的startActivity方法调用过程

Activity的startActivity方法调用过程采用一步步追踪调用过程的方法App的startActivity到AMS的调用过程IActivityManager.java类是由AIDL工具在编译时自动生成的,位于/frameworks/base/core/java/android/app/IActivityManager.aidlActivityManagerService继承自IActivityManager.Stub,表示服务端public class ActivityManager

2023-05-26 10:55:32 173

原创 Activity的onCreate方法是怎样被调用的?

综合参考以上信息和《Android进阶解密》中相关内容,可知是通过binder远程调用过来的,其实就是。类定义如下,说明是其它进程跨进程调用过来的。在源码中搜索,或者通过命令行来搜索。按前面源码分析的介绍,在。方法中添加一个log。

2023-05-25 13:58:15 259

原创 分析源码的方式

所以可使用如下的形式打log,可显示调用的堆栈。1.主动调用,跟随源码一步步分析,如分析。Log有如下形式的方法,带有一个。如上,比如在Activity的。方法中添加log,可显示调用。2.被动调用,如分析。

2023-05-24 14:55:42 78

原创 导入源码至Android Studio

使用如下的步骤:1.source可以用代替,即2.lunch,并选择要编译的项目3.(这里的-j4表示用 4线程来编译,可以不加)4.执行脚本,生成.iml.ipr文件报错不影响有了ipr和iml,删减一部分的内容,主要原因源码太多,要排除部分没用项目,还有就是依赖部分只留下自己moudle就可以把中的标签都删除用以下标签之后,选择Android Studio的,选择文件即可由于本人的误操作,导致导入时提示1.移除.idea文件夾,该文件夾时隐藏的,使用ls -a移除。

2023-05-21 12:29:42 1158

原创 Ubuntu配置adb

在Android Studio可知Android SDK 位置为。本人是在已安装Android Studio的基础上,安装。

2023-05-20 22:39:54 413

原创 Liunx安装Android Studio

4.Android Studio 设置向导会引导您完成其余设置,其中包括下载开发所需的 Android SDK 组件。3.选择是否想要导入之前的 Android Studio 设置,然后点击 OK。对于 64 位版本的 Linux,请先安装 64 位计算机所需的库。2.若要启动 Android Studio,请打开一个终端,进入。文件解压缩到您应用的相应位置,例如。中(用于用户个人资料)或者。中(用于共享用户)。

2023-05-20 21:39:41 2667

原创 Android源码环境搭建

下载链接地址:https://pan.baidu.com/s/1Jwsrb-zwrQO-HEHo5eo9Jg 提取码:uu1j。1.安装Ubuntu16.4 系统。2.openjdk 8 的安装。按上文的链接,这里选择。3.安装所有的软件包。可按上面的链接,修改。

2023-05-20 19:31:31 810

原创 Windows安装Ubuntu双系统

本人电脑是联想小新 Windows11系统,在综合参考如下的教程后,才成功安装Ubuntu 16.04。具体来时就是搜索不到wifi网络,查询了下,可能是没有wifi的驱动。参考上述的内容,进行一些系统设置和BIOS设置。1.下载Ubuntu 16.04,地址。5.重启,按住shift键。2.下载Rufus,地址。3.准备U盘,烧录系统。1.没有Wifi网路。本人电脑的网卡类型为。

2023-05-19 22:18:40 785

原创 C-认识指针

在不同的平台上用一致的方式显示指针的值比较困难。指针,它可以被转换回原来的指针类型,指针的值和原指针的值是相等的。指针被声明为全局或静态,就会在程序启动时被初始化为。操作符的返回值类型,同时也是很多函数的参数类型,如。指针是通用指针,用来存放任何数据类型的引用。指针只能用做数据指针,而不能用做函数指针。是一个指向整数的指针变量 const。被赋值给指针就意味着指针不指向任何东西。是一个指针变量 const int。是一个指向整数常量的指针变量。,如下的声明都是等价的。)返回指针变量指向的值。

2023-05-17 18:43:29 531

原创 C++ string类

类隐藏了字符串的数组性质,让我们能够像处理普通变量那样处理字符串。对于C风格字符串,可使用C语言库中的函数来完成这些任务。可以使用数组表示法来访问存储在。将两个string对象合并起来。函数将字符串附件到字符数组末尾。函数将字符串复制到字符数组中。函数返回该字符串包含的字符数。类,必须在程序中包含头文件。可以使用如下的方式声明。

2023-05-15 22:01:18 379

原创 C++字符串

另外,各种C++输入工具通过键盘输入,将字符串读入到。数组中,字符不超过19个(最多18个字符,余下的空间用于存储自动在结尾处添加的空字符)。第一次调用后,换行符将留在输入队列中,因此第二次调用时看到的第一个字符就是换行符。注意:C++很多字符串处理函数,都逐个地处理字符串中的字符,直到到达空字符为止。方法不丢弃换行符,而是将其留在输入队列中。字符串常量(字符串字面量),使用双引号括起字符串即可。函数读取整行,它通过回车键输入的换行符来确定输入结尾。因确保数组足够大,能够存储字符串作用所有字符,

2023-05-15 17:51:31 564

原创 C++数组

1.只有在定义数组时才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组。2,可以在大括号中不包含任何东西,相当于是把所有元素设置为。的值不能是变量,变量的值是在程序运行时设置的。C++11列表初始化增加了一些新功能。2.提供的值可以少于数组元素的数目。为空,C++编译器将计算元素个数。3.列表初始化禁止缩窄转换。但可以给数组中的元素赋值。编译器把其他元素设置为。3.如果初始化时方括号。

2023-05-15 15:37:29 573

原创 NumberPicker分析(三)

这一节主要用来分析的事件处理及滚动继承自,是一个ViewGroupViewGroup另外,源码中实现滚轮的滚动,使用到了Scroller,以及 View的scrollToscrollBy方法,也需要对其有一定的了解。

2023-04-21 19:29:28 553

原创 NumberPicker分析(二)

继承自。一般而言,无论是继承自View,还是继承自ViewGroup。

2023-04-21 14:17:05 302

原创 NumberPicker分析(一)

可实现连续滚动的字符串选择,其实现方式很有借鉴的意义然后设置minValue和maxValue。(当然也可以设置,这里以最简单的使用方式为例)其显示效果如下:分析下构造方法(源码可参考表示 - 是否具有选择轮如果在源码处添加一个debug的断点,会发现结果是true,即表示不是通过官方文档对在android源码中搜索下相关的布局(Holo主题中定义如下(

2023-04-20 17:46:05 997

原创 WindowManager全屏窗口

有关,在保持其它参数不变的情况下,使用不同的type,也会发现点击事件无效了。在手机或者车机开发中,有时需要弹出一个全屏的窗口,覆盖整个屏幕。隐藏NavigationBar,注意不要使用。view上如果有按钮点击事件,如果设置了。后,点击事件就无效了,需要注意下。同时点击无效,还可能与。

2023-02-28 10:59:40 952

原创 使用Postman进行HTTPS请求

按上面的教程,使用自签名的https证书,进行网络请求。

2022-11-24 16:41:14 1647

原创 证书格式说明

OpenSSL 可以将所有算法(RSA、DSA、EC)的私钥包装在通用和标准的 PKCS#8 结构中,但它也支持单独的 每种算法的“遗留”结构,尽管文档已将 PKCS#8 标记为优越近 20 年,但两者仍被广泛使用;[3] 由于DER产生的是二进制格式数据,在许多系统(如电子邮件)中传输不变,所以需要ASCII表示DER格式的数据,即PEM格式。它包含证书颁发机构为请求者创建和签署证书所需的公钥和通用名称等信息,编码可以是 PEM 或 DER(这是 ASN.1 指定结构的二进制编码);

2022-11-24 16:32:32 2445

原创 javax.net.ssl.SSLHandshakeException: Chain validation failed

原来是我调试设备的时间不对造成的,修改为当前时间就可以解决了。但是这些请求并没有用到SSL、TSL相关的设置。在请求网路数据的时候遇到。

2022-11-23 16:04:44 852

原创 Couldn‘t terminate the existing process for xxx

Android Studio : Couldn't terminate the existing process for xxx

2022-11-22 20:10:36 6994

原创 查看dex文件

查看dex文件

2022-09-13 17:51:51 1706

原创 Android文件格式

JIT最早在Android 2.2系统中引进到Dalvik虚拟机中,在应用程序启动时,JIT通过进行连续的性能分析来优化程序代码的执行,在程序运行的过程中,Dalvik虚拟机在不断的进行将字节码编译成机器码的工作。因此,相对于Dalvik虚拟机模式,ART模式下Android应用程序的安装需要消耗更多的时间,同时也会占用更大的内部储存空间,用于储存编译后的代码,但节省了很多Dalvik虚拟机用于实时编译的时间。ART能够把应用程序的字节码转换为机器码,是Android所使用的一种新的虚拟机。

2022-09-08 17:26:57 821

原创 Java 零拷贝

Java 零拷贝参考:Java中的零拷贝零拷贝(英语: Zero-copy) 技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率零拷贝技术减少了用户进程地址空间和内核地址空间之间因为上:下文切换而带来的开销传统的IO数据读写如下的例子,Java传统IO和网络编程的一段代码Fi

2021-12-16 21:44:23 1328

原创 Java NIO - 简单群聊系统

Java NIO - 简单群聊系统使用NIO实现服务端和客户端之间的简单数据通讯实现多人群聊服务端可以监测用户上线、离线,并实现消息的转发功能客户端通过channel可以无阻塞发送消息给其它所有用户,可以接收其它用户发送的消息...

2021-12-05 22:23:48 380

原创 Java NIO - Selector

Java NIO - SelectorSelector能够检测多个注册的通道上是否有事件发生(多个channel以事件的方式可以注册到同一个selector)。如果有事件发生,便获取事件,然后对每个事件进行相应的处理。这样就可以只用一个单线程去管理多个通道,也就是管理多个连接和请求Selector类Selector类是一个抽象类,说明如下:public abstract class Selector implements Closeable一些方法:1.public static Select

2021-11-29 22:23:21 402

原创 Java NIO - Buffer & Channel

Java NIOJava NIO 为java non-blocking IO,从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,是同步非阻塞的NIO三大核心部分:Channel(通道)Buffer(缓冲区)Selector(选择器)NIO是面向缓冲区,或者面向块编程的。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络Java NIO的非阻塞模式,使一个线程从某通过发送请求或者读取数据,但是它仅能

2021-11-28 14:04:31 643

原创 Java BIO

Java BIOJava BIO指的是blocking I/O,同步并阻塞式的IO同步vs异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不

2021-11-24 17:38:52 259

iOS Drawing Practical UIKit Solutions

Apple lavished iOS with a rich and evolving library of resolution-independent 2D drawing utilities. Its APIs include powerful features such as transparency, path-based drawing, anti-aliasing, and more. Harness these low-level, lightweight drawing routines in your apps to build images, to create PDFs, to display views, and to print.

2016-03-06

iOS Programming- The Big Nerd Ranch Guide 第4版

iOS Programming- The Big Nerd Ranch Guide 4ed,iOS开发教程,第4版

2015-06-01

NSOperation例子

一个NSOpration的例子,转载自raywenderlich

2015-04-01

AVCaptureSession

AVCaptureSession可以用来自定义照相机,这两个demo,也是在网上找的,可以作为参考

2014-10-11

iOS模糊效果Demo

ios 中 实现模糊效果,主要是扩展了image,有两个例子,可以参考

2014-07-02

SDWebImage

SDWebImage 第三方库,很好用的图片缓存与下载

2014-06-26

TKAlertCenter

效果很不错,由小到大显示,一两秒钟后由大到小消失

2014-06-20

空空如也

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

TA关注的人

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