- 博客(38)
- 收藏
- 关注
原创 Android NDK入门
NDK(Native Development Kit)原生开发套件,由google推出,作用是让开发者能够在android应用中使用C和C++代码,而且NDK提供了众多平台库,开发者可以使用这些平台库管理原生acitvity和访问实体设备组件(比如传感器,触控输入等)。NDK对于大多数初学android开发的有些难度,但是对于要进阶的开发者,那么NDK就大有用途了:- 进一步提升设备性能,降低延迟或者运行游戏或者物理模拟等计算密集型应用。- 重复使用开发者自己或者其他开发者开发C或者C++库。
2025-11-17 16:18:33
588
原创 Android ABI
Android系统支持多种ABI(应用二进制接口),主要包括armeabi-v7a、arm64-v8a、x86和x86_64。不同ABI对应不同CPU架构的指令集,如ARMv7/ARM64及x86/x86_64。开发者可通过Gradle或ndk-build配置针对特定ABI构建应用,例如仅支持64位架构(arm64-v8a和x86_64)。每种ABI有特定的指令集支持、内存对齐规范及二进制格式要求,开发者需根据目标设备选择合适的ABI进行优化。注意部分老旧ABI(如armeabi)已在NDK r17后不再支
2025-11-16 18:47:29
707
转载 SSE3(维基百科)
K10 familyFX SeriesZen familyIntel:Celeron DPentium DCoreAtomC7Nano。
2025-11-14 16:47:32
23
原创 Streaming SIMD Extensions(SSE 维基百科)
【代码】Streaming SIMD Extensions(SSE 维基百科)
2025-11-14 16:39:02
904
原创 MMX(转自维基百科)
{{Short description|Instruction set designed by Intel}}{{Use mdy dates|date=October 2018}}MMX is a single instruction, multiple data ([SIMD]) instruction set architecture designed by Intel, introduced on January 8, 199712 with its Pentium P5 (microarchi
2025-11-14 16:36:35
964
原创 Android Neon支持
ARM NEON是Cortex-A系列处理器的128位SIMD(单指令多数据)扩展架构,用于加速多媒体处理(如视频编解码、图像渲染)。16个128位寄存器(Q0-Q15),支持整数、浮点运算性能提升:视频编解码加速60%-150%,部分算法加速5-8倍应用场景:Android、Ubuntu、Skia图形库等Cortex-A系列处理器自ARMv7架构引入并在ARMv8架构中默认继承,主要服务于移动设备、智能电视等场景的多媒体处理需求。优势:高性能SIMD计算、优秀的能效比、完善的开发工具链。
2025-11-14 16:25:17
888
原创 记录一个Android原生适配android输入法遇到的问题
摘要:聊天界面底部输入框需要适配输入法高度,当前实现通过WindowInsetsListener动态调整padding。由于游戏Activity在Android 15适配全面屏时也设置了WindowInsetsListener并返回CONSUMED,导致Fragment的监听失效。解决方案有两种:1)在Fragment的onResume中重新设置监听(不修改游戏代码);2)让游戏Activity修改适配逻辑,不使用CONSUMED以便事件继续传递,同时Fragment改用自身布局根视图而非系统窗口根视图。问
2025-11-13 17:43:31
180
原创 初识AOSP
AOSP,全称 Android Open Source Project ,即 Android 开放源代码项目 ,是谷歌主导开发的一个移动设备操作系统项目。它的主要目标是提供一个开源的、免费的移动设备软件平台。AOSP 的源代码向全球开发者公开,使其可以自由获取并加以修改,从而推动安卓操作系统的普及与多样化。AOSP 是现代移动操作系统的一个里程碑,由其发展而来的 Android 系统已经重塑了全球技术生态。
2025-11-13 16:04:39
780
原创 如何开始使用 Perfetto?
Perfetto 是一个庞大的项目,对于新用户来说,确定哪些文档与自己相关可能具有挑战性。通过聚焦你使用的技术和目标,本页面将引导你高效地使用 Perfetto 并解决实际问题。
2025-10-27 16:01:29
623
原创 什么是跟踪或者追踪?
性能分析和软件更好的运行有关。更好的定义差异很大,而且和环境有关。同样的功能使用更少的资源(CPU,内存,网络,电量等)增加可用资源的利用率确认并且消除不必要的一起工作的内容提升性能表现的困难绝大多数来自确定性能问题的根本原因。现代软件系统是复杂的,并且有很多组件和相互作用的网络。帮助工程师理解系统执行,并且能准确指出问题所在的技术是非常关键的。Tracing和 Profiling是两种广泛应用的用于性能分析的技术。Tracing需要收集非常详细的系统运行数据。
2025-10-27 15:41:59
775
原创 Android性能分析入门探索
对于 可带来更好的用户体验,请考虑帧速率为 60 fps 或以上,尤其是 需要流畅的动画或快速反应的游戏 和在高端设备上运行时的情形请注意,帧速率越高,电池续航时间、设备温度和图形保真度就越低,因此提高帧速率可能并不适用于所有设备、游戏或场景。发现和精选 在有些设备上,您的应用或游戏的曝光度可能会受到限制 稳定性指标超过 Google Play 的不良行为阈值,并且 在这些设备上的商品详情中可能会显示您的商品 了解详情。适当的应用大小的定义因应用类别而异,但一般而言,您应尽可能缩减应用大小。
2025-10-24 14:58:27
656
原创 【无标题】
摘要:Android模拟器启动失败时,建议通过命令行启动以获取详细错误信息。主要解决方法包括:检查并重新安装Android Emulator组件、安装Qt库依赖(如libqt5widgets5)、清理重建AVD设备、更新SDK工具、检查环境变量配置(ANDROID_SDK_ROOT和PATH),以及确保硬件加速启用。这些步骤可有效解决因组件缺失或配置错误导致的启动问题。(149字)
2025-09-29 14:41:42
302
转载 https://blog.youkuaiyun.com/zhiwen_a/article/details/81192087
记录一下原码,反码,补码的深入理解学习感受感受https://blog.youkuaiyun.com/zhiwen_a/article/details/81192087
2019-08-23 18:24:47
492
原创 开发人员必备的技能--Junit测试
对于程序员来说,仅仅让程序通过编译是不够的,还要做到基本的测试,保证写的代码的正确性。单元测试,集成测试,黑盒测试,白盒测试,对于学过软件工程的计算机专业的人来说这些都很熟悉,但是我相信很多人都并不会真的做测试,其中有各种各样的理由。但是单元测试是一个程序员必须掌握的技能。而且以后在重构,测试的时候你会发现Junit测试真的是一件非常必要非常便利的事情。而且很能提高自己的工作效率。虽然说andr...
2018-06-27 14:34:48
765
原创 Android换肤实现探索(一)
一直想写一个换肤的程序,用来探究学习一下android绘制过程,这次刚好有机会就进行一个学习。如果有错误的地方,请大家随时指正。1.换肤核心问题思索 换肤最重要的是什么呢,换肤程序结构分为应用包,皮肤包,以及换肤程序。这样的设计让模块分离,降低程序耦合度,让这个模块有良好的扩展性。 一个标准的换肤流程应该是:加载皮肤(现在本地找,如果没有就去网上下载)–> 换肤模块进行皮肤的替换 我们
2018-01-10 14:52:14
396
原创 android开机无法自动启动,安装无法自动启动
/** * From Android 3.1, newly installed apps are always put into a “stopped” state and the only way to move it out of the stopped * state is to manually launch any Activity of the app at least once
2018-01-02 15:04:21
979
原创 TensorFlow lite
讯 北京时间11月15日早间消息,谷歌今天发布了TensorFlow lite,让应用给开发者可以在移动设备上部署人工智能。这个移动版谷歌开源人工智能项目最早是在I/O开发者大会上宣布的。
2018-01-02 14:57:53
378
转载 android基础-build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
为了让你的应用程序指定可以运行的版本,Android的manifest文件中提供了标签。该标签中有三个属性,分别是minSdkVersion,targetSdkVersion,maxSdkVersion。这三个属性比较容易让人迷惑,我也是仔细读了谷歌的官方文档,才弄清楚这三个属性的意义。此外,在项目构建时,还有个概念叫build target,在本文中也会进行分析。什么是API level其实标签中
2017-11-14 12:00:33
503
原创 Android横竖屏切换以及生命周期管理
需求:切换屏幕方向的时候不想重新创建activity,这时候就需要进行属性以及代码的设置。一、怎么设置屏幕的横竖屏呢,在Activity中调用setRequestedOrientation(para)就可以设置当前activity的方向了。 设置横屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)设置竖屏 s
2017-10-20 11:41:34
515
原创 设计模式---工厂模式、抽象工厂模式
工厂模式: 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选
2017-09-18 19:43:21
561
原创 java中的单例模式
java常用的模式—单例模式为了保证某些消耗资源的类在程序中的唯一性,减少不必要的开销,我们需要使用单例模式。介绍几种常用的单例模式及优缺点:饿汉单例模式class Singleton{ private Static Singleton instance = new Singleon(); private Singleon(){ } public static Sin
2017-09-18 11:43:22
518
原创 Android开源框架GreenDao3.0使用纪要
在android开发的过程中,免不了与数据库打交道,今天简单介绍一个orm的一个开源数据库框架GreenDao 3.0 的使用方法。GreenDao 优点:1.性能高,号称Android最快的关系型数据库 2.内存占用小 库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制 3.支持数据库加密 greendao支持SQLCipher进行数据库加密 有关SQLCipher可以参
2017-09-15 15:52:31
473
原创 设计模式原则----里氏替换原则,依赖倒置原则
一、里氏替换原则。 里氏替换原则(LSP)简而言之就是子类要完全实现父类的外在表现。通俗的讲就是“老鼠的儿子会打洞”。 举个例子说比如说鸟类会飞,鸟这一大类的子类,大雁,麻雀,丹顶鹤都应该会飞。这样就是符合里氏替换原则的。 但是不是所有的鸟都会飞的,比如说企鹅。企鹅就不会飞,但是却被归为鸟类。在计算机中的继承和自然界的继承是不一样的。计算机的子类如果不符合里氏替换原则就会让既有的设计无法封闭。
2017-09-13 17:12:43
1038
原创 Android设计模式之23种设计模式一览
一 什么是设计模式? (1)基本定义:设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码、让代码更容易被他人理解。设计模式是是软件工程的基石脉络,如大厦的结构一样。 (2)Design pattern的四大要素:模式名称(Name),问题(Question),解决方案(Solution),效果(Efftive)。 (3)OO(面向
2017-09-12 16:51:43
366
转载 Linux 系统的启动过程
linux启动时可以看到很多启动信息。 linux系统的启动过程并没有想象中那么复杂,可以分为五个阶段:内核的引导运行init系统初始化建立终端用户登录系统内核引导 计算机通电以后,首先BIOS会进行开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入/boot目录下的内核文件。 运行init init程序是系统所有进程的起点,它可以被看作系
2017-09-11 18:26:31
342
转载 ubuntu 常见的错误 Could not get lock /var/lib/dpkg/lock
ubuntu 常见的错误 Could not get lock /var/lib/dpkg/lock 遇到此错误的操作: 当使用终端安装程序sudo apt-get install xxx时出错: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable t
2017-09-11 10:09:14
416
转载 简单比较C语言中的execl()函数与execlp()函数
C语言execl()函数:执行文件函数 头文件:#include <unistd.h>定义函数:int execl(const char * path, const char * arg, ...);函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0), argv[1], …, 最后一个参数必须用空指针(NULL)作结束.
2017-09-07 15:08:45
9068
原创 Android开发----widget的使用
1.appwidget框架类AppWidgetProvider–本质是一个brocastreciever。在appwidget应用enabled,update,delete,disenabled时接受广播。常用的是onRecieve,和onUpdate;AppWidgetInfo–是widget的配置信息(包括大小,更新频率等),以xml文件等形式存在于res/xml目录下;AppWidget
2017-09-05 11:51:37
556
原创 android输入框取消横屏全屏输入
android输入框在横评的时候如果不做特殊处理,点击输入框的时候会弹出新的界面来输入,如果我们需要设置在惦记的时候还能看到输入框,就需要在布局中加入相应的属性。 android:imeOptions=”flagNoExtractUi”。如果希望全屏输入模式的右侧有一个按钮来让用户实现诸如完成输入之类的操作,可以在标签中添加android:imeActionLabel=”@string/launc
2017-09-05 11:17:12
2170
转载 java内存管理小技巧
尽量使用直接量 当需要使用字符串,还有Byte,Short,Integer,Long,Float,Double,Boolean,Character包装类的实例时,程序不应该采用new的方式来创建对象,而应该直接采用直接量来创建它们。使用StringBuilder和StringBuffer进行字符串连接 String,StringBuilder,StringBuffer都可以代表字符串,其中St
2017-08-29 17:42:15
386
转载 Java中的垃圾回收机制以及常见的垃圾回收器
以前基本了解java内存回收的机制,现在发现一片文章让我更加深入理解了java中的gc机制。1.对象在内存中的状态对于JVM的垃圾回收机制来说,是否回收一个对象的标准在于:是否还有引用变量引用改对象?只要有引用变量引用对象,垃圾回收机制就不会回收它。也就是说,当java对象被创建出来之后,垃圾回收机制会实时的监控每个对象的运行状态,包括对象的申请,引用,被引用,赋值等。当垃圾回收机制实时的监控到某个
2017-08-29 17:24:41
568
翻译 Android 8.0 行为变更
随着Android 8.0的发布,Orel成了android新的宠儿。针对android o有哪些行为变更,我们大家就一起来看看吧。Android 8.0 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更。本文重点介绍您应该了解并在开发应用时加以考虑的一些主要变更。其中大部分变更会影响所有应用,而不论应用针对的是何种版本的 Android。不过,有几项变更仅影响针对 Android
2017-08-29 10:53:14
712
原创 算法常用的工具---流程图
流程图:算法的图形化表示方式。 优点作用:更形象清晰让人容易理解算法。 常见的流程图图标: https://wenku.baidu.com/view/8433b4f90242a8956bece41a.html
2017-08-23 16:37:25
4441
转载 Android启动过程深入解析
做android开发一段时间了,但是一直没有研究过android系统的启动过程,今天有幸看到一片文章,从整体给了自己android启动的概念,特此记录分享.原文链接:http://blog.jobbole.com/67931/当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样的? 什么是Linux内核? 桌面系统linux内核与Android系统linux内核有
2017-08-23 14:45:46
346
转载 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-08-16 19:05:41
275
原创 关于写博客的这点事
之前在大学的时候写过新浪博客,但是时间长了就忘了更新了,很遗憾当时没能坚持下去。为什么呢,因为工作后觉得太安逸了,忘了初心,也忘了想要达到的目标,安逸让我飘飘然,没有了动力当然就坚持不下去了。最近我突然发现自己原来忘了这么多东西,我不想再这么浑浑噩噩下去了。而且我发现在我学习的领域里有很多问题都只有国外的一些解决方案,这样很不方便一些英语不好的同学学习。我想重拾下梦想,看看人是不是真的有极限,
2017-08-16 18:57:12
370
不同 C++ 编译器和操作系统的调用规范【编译器与操作系统】C++调用约定、名称修饰及二进制兼容性标准:跨平台开发中的函数调用、数据对齐与链接互操作机制研究
2025-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅