- 博客(394)
- 资源 (19)
- 收藏
- 关注

原创 Android 博客目录整理
之前有整理过Android部分的博客目录的,不幸弄丢了,再来整理一份吧!希望这次不要再丢了!!!初识Android1、Android开发相关介绍及工具的安装 2、 Android电话拨号程序 3、 Android:发短信Demo与Activity相识 Activity的2种启动方式 Android UI之初体验五大布局1、 Android UI设计的三种常见布局(LinearLayout
2015-10-18 13:19:40
2995
2
原创 Android Opengl(九)FBO帧缓冲&&示例
用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲(Framebuffer)。OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深度缓冲和模板缓冲。默认情况下,OpenGL渲染的目标是屏幕,但如果你不想直接渲染到屏幕上,还需要对渲染结果做某些后期处理、渲染到纹理、阴影映射等操作,便可以使用帧缓冲对象,实现离屏渲染。
2025-03-20 19:26:38
525
原创 Android OpenGL(八)转场特效
什么是转场特效:从一个镜头转到另一个镜头,让两个不相关的场景可以平滑过渡。为什么使用转场特效:镜头转场对普通人难度太大,特效转场更容易实现。特效转场应用场景丰富。
2025-01-24 17:30:56
1058
1
原创 Android OpenGL(七)实现滤镜效果(特效渲染)
什么是LUT:Look Up Table ,它是一种颜色查找表作用:用颜色表中的色彩替换原来的像素颜色原理:以每个像素的RGB值为索引在预先定义好的颜色表中查找对应的值。用查到的值替换原来像素的颜色LUT种类。
2025-01-24 14:20:32
1060
原创 Android OpenGL(六) 纹理
纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。
2025-01-22 15:44:00
561
原创 OpenGL(四) 提升Shader性能--VBO、EBO、VAO之VAO
VAO:Vertex Array Object 顶点数组对象,它是在GPU分配的,存放VBO对象ID。
2025-01-06 19:25:45
281
原创 OpenGl(四) 提升Shader性能--VBO、EBO、VAO之EBO
EBO:Element Buffer Object 元素缓冲对象也被称为IBO,用于存储顶点索引值优点:减少数据拷贝 ,可以更灵活的使用顶点数据,有一些效果使用EBO更方便。
2025-01-06 19:21:35
384
原创 OpenGl(四) 提升Shader性能--VBO、EBO、VAO之VBO
Vertex Buffer Object顶点缓冲对象,用于在GPU中存储数据,加速渲染过程。优点:(1)减少CPU到GPU数据的传输,提高渲染效率(举例渲染三角形,需要知道顶点+颜色,这些数据都在cpu,如果模型复杂,每次都需要时才拷贝数据,因此这里使用VBO会将数据进行一次性拷贝到GPU,使用时直接从GPU存储空间获取数据,进行渲染)(2)数据保存在GPU,可重复使用(3)可以直接在GPU对数据进行转换,减少GPU负载。
2025-01-06 19:16:40
362
原创 Android OpenGl(二) Shader
(1)shader运行在gpu上的小程序(2)以前使用固定管线,但缺点是灵活度不够,无法满足复杂需求,为了解决固定管线的缺点,出现了,可编程管线允许开发者自定义渲染过程,提高了灵活度。(3)Shader是可编程管线的一部分,用于对各个阶段的自定义,shader可充分利用gpu并行计算能力,,Shader可通过编程对gpu。
2024-12-27 18:33:58
1148
1
原创 Opengl(一)基础知识
1992年发布第一个版本,到现在有30多年历史1997年支持多平台2003年发布2.0,是其一个重要版本,加入了shader2008年发布3.0,功能得到较大提升2014年4.4和GLES3.0发布,移除过时API,功能统一。
2024-07-28 21:34:04
380
原创 鸿蒙Harmony(十一)Stage模型
Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。
2023-12-28 21:28:56
1441
原创 鸿蒙Harmony(十)动画
属性动画是通过设置组件的animation属性来给组件添加动画,当组件的width、height、Opacity、backgroundColor、scale 、rotate、translate等属性变更时,可以实现渐变过渡效果。
2023-12-28 13:14:42
797
原创 鸿蒙Harmony(九)页面路由
页面路由是指在应用程序中实现不同页面之间的跳转和数据传递。同时,Router模块提供了两种实例模式,分别是Standard和Single。这两种模式决定了目标url是否会对应多个实例。Standard:标准实例模式,也是默认情况下的实例模式。每次调用该方法都会新建一个目标页,并压入栈顶。Single:单实例模式。即如果目标页的url在页面栈中已经存在同url页面,则离栈顶最近的同url页面会被移动到栈顶,并重新加载;如果目标页的url在页面栈中不存在同url页面,则按照标准模式跳转。
2023-12-28 10:50:18
1555
原创 鸿蒙Harmony(八)ArkUI--状态管理器之@Prop 和 @Link & @Provide 和 @Consume & @ObjectLink 和@Observed
承接。
2023-12-27 22:13:09
927
原创 鸿蒙Harmony(八)ArkUI--状态管理器之@State
在声明式UI中,是以状态驱动视图更新状态:指驱动视图更新的数据(被装饰器标记的变量)
2023-12-27 22:11:49
1440
原创 鸿蒙Harmony(七)ArkUI--循环foreach&List组件&自定义组件
创建自定义组件 @Component@Builder@Style:仅可封装组件通用属性@Extend:仅可定义在全局,可以设置组件的特有属性@Componentbuild() {} }代码示例@Componentprivate name: string = "苹果"build() {Row() {.width(80).borderRadius(40) //圆角。
2023-12-27 10:56:34
1848
原创 鸿蒙Harmony(六)ArkUI---基础组件:Image、Text、TextInput、Button、Slider
【代码】鸿蒙Harmony(六)ArkUI---基础组件:Image、Text、TextInput、Button、Slider。
2023-12-27 10:56:03
554
原创 鸿蒙Harmony(五)ArkUI---基础组件:Text、TextInput、Button、Slider
1.设置文案在资源文件中添加对应的文本资源2.属性设置效果。
2023-12-27 10:55:19
1150
原创 鸿蒙Harmony(四)ArkUI---基础组件:Image
权限申请文档(安全中的访问权限): https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/accesstoken-guidelines-0000001493744016-V2。Cover(默认值):保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。Fill:不保持宽高比进行放大缩小,使得图片充满显示边界。None:保持原有尺寸显示。
2023-12-27 10:53:27
1165
原创 鸿蒙Harmony学习(三)TypeScript语言学习
TypeScript在JavaScript的技术长加入了静态类型检查功能,因此每个变量都有固定的数据类型我们可以通过TypeScript官网的playground来简单运行一下我们的程序。
2023-12-27 10:52:58
576
原创 鸿蒙Harmony开发学习(一)运行helloworld
HarmonyOS与OpenHarmony(1)本质上的不同是:HarmonyOS是鸿蒙操作系统,而OpenHarmony则是从开源项目。这里可以联想一下Android,比如小米手机在Android开源系统的基础上开发了MIUI的手机操作系统,HarmonyOS就类似于MIUI,OpenHarmony类似Android基础底座。(2)HarmonyOS:是双框架,内聚了AOSP(Android Open Source Project )和OpenHarmony等。
2023-12-27 10:45:57
1490
原创 IOS学习-02 OC--封装、继承、多态
/ 成员变量方案修饰符问题1、@public: 公有 - 在类内类外都可以使用并且可以被继承2、@private: 私有 - 在类内可以使用,类外无法调用,并且不可被继承3、@protected: 受保护 - 在类内可以使用,类外无法调用,并且可以被继承4、 @package: 框架权限 - 在框架内相当于受保护,在框架外相遇私有。// 方法没有访问修饰符。
2023-02-26 21:45:39
357
原创 IOS学习-01 OC--helloword示例记录
执行成功cc -c 之后,调用cc xx.o. 发现报错,报错是因为运行后并没有引入NSLog的框架内容导致,需要调用cc xx.o -framework Foundation。ps:过程中如果不知道需要import什么内容,可以通过cc -c xxx.m 命令行运行后,会有错误提示,根据错误提示复制对应内容即可。3、执行cc xx.o。
2023-02-19 22:00:21
186
原创 脱糖与DX、D8、R8
脱糖脱糖含义:lamdal表达式在打包构建期间被转换成内部类的形式,这个过程叫脱糖(java编译时不会这样)。为了让我们能使用上Java 8的特性,Google使用Transformation来增加了一步编译过程 →脱糖(desugaring)。脱糖实现的大概发展历程如下:D8D8作用:脱糖 + 将.class字节码转换成dexR8整合了Proguard和D8 ,减少了一个编译步骤,同时保留了字节码优化能力两者关系1、ProGuard→ 压缩、优化和混淆Java字节码文件的免费工具,开源
2022-03-24 16:17:25
1236
原创 Android 性能优化(1)--性能优化介绍
1、性能优化需要解决的问题2、性能优化解决方案根据项目阶段的演进学习性能优化解决方案演进的作用:1、深刻理解性能优化手段、思维发展历程2、面试展现对更高层次的思考、理解3、业界优秀的平台化实践...
2022-02-05 16:06:05
441
原创 Android性能优化总提纲
优化工具:(1)Systrace:关注Frames,正常:绿色圆点丢帧:黄色或者红色–alerts栏(2)LayoutInspector(AS–tools–LayoutInspector)(3)可以通过Choreographer来获取FPS,Choreographer.getInstance().postFrameCallback()。如何优雅的获取界面的布局耗时常规方式:获取每个界面加载耗时 (对setContentView 记录时间)AOP/ArtHook:(1)aop:切Activ
2022-02-05 16:05:17
183
原创 Android 性能优化(6)--apk瘦身优化
瘦身优化及apk分析方案介绍瘦身优势1、下载转换率的提升2、头部App都有Lite版本3、渠道合作商要求apk的组成1、代码相关:classes.dex2、资源相关:res、asserts、resources.arsc3、so相关:libapk分析1、ApkTool反编译工具(官网:https://ibotpeaches.github.io/Apktool/)命令:apktool d xx.apk...
2022-02-04 16:31:02
366
原创 Android 性能优化(5)--卡顿优化
卡顿优化CPU ProfilerSystraceStrictMode卡顿问题难的排查是比较难的,一方面因为卡顿问题产生的原因错综复杂,比如:代码、内存、绘制、IO操作等,另一方面,有的场景下的卡顿问题,可能难易复现。工具选择CPU Profiler图形的形式展示执行时间,调用栈等信息全面,包含所有线程缺点:运行时开销严重,整体会变慢,可能会带偏我们优化的方向。使用:Debug.startMethodTracing("")Debug.stopMethodTracing();生
2022-02-04 15:35:27
418
原创 Android 性能优化(3)--内存优化--(内存优化工具、内存管理机制、内存抖动、内存泄漏)
内存优化及工具Memory profiler特点方便直观线下使用使用Android studio工具点击MEMORY后,如下:可以看到当前应用运行总的大小是446M,java占44M,Native201,点击垃圾桶按钮旁边的下载图标按钮会得到如下具体数据shallow size 是自己的大小retained size 是引用链对象总共占用的大小Memory Analyzer特点强大的Java Heap分析工具,查找内存泄漏及内存占用生成整体报告、分析问题线下深入使用使
2022-02-03 15:43:54
154
原创 Android 性能优化(2)---启动优化---2(方法耗时获取与异步初始化)
启动优化内存优化网络优化优化工具:(1)Systrace:关注Frames,正常:绿色圆点丢帧:黄色或者红色–alerts栏(2)LayoutInspector(AS–tools–LayoutInspector)(3)可以通过Choreographer来获取FPS,Choreographer.getInstance().postFrameCallback()。如何优雅的获取界面的布局耗时常规方式:获取每个界面加载耗时 (对setContentView 记录时间)AOP/ArtHook
2022-02-02 17:16:49
273
原创 Android 性能优化(2)---启动优化--1(启动优化介绍+启动时间测量)
启动优化介绍(1)背景介绍为什么要进行启动优化?第一体验和八秒定律,用户接触app首先就是第一体验比较重要,其次,app如果打开时间超过8s,大概会流失70%的用户。(2)启动分类:冷启动、热启动、温启动冷启动:特点:耗时最多,衡量标准,流程:ClickEvent—>IPC–>Process.start—>ActivityThread—>bindApplication---->ActivityLifeCycle—>ViewRootImpl热启动:特点:最快
2022-02-02 11:04:52
205
原创 Android 固定View在键盘上方
简介1、提供工具类2、对外提供2种使用方式:a、根布局必须是RelativeLayout b、使用PopWindow实现。代码1、固定在键盘上方的控件Viewclass FixOnKeyBoardView : FrameLayout { constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : this(context, attrs,.
2022-01-21 16:50:02
3436
原创 adb 和android开发常用命令
adb logcat -d time > 1.logadb logcat | grep wdf查看当前Activity :adb shell dumpsys window w | grep name=""查看当前栈顶的Activity :adb shell dumpsys activity | grep “mFocusedActivity”查看当前栈顶的Activity的Fragment :adb shell dumpsys activity your.package.name或者:adb
2021-04-19 16:15:15
285
3
原创 Kotlin 语法糖
1、变量声明不推荐使用 lateinit 和!!(容易空指针)// goodvar tv: TextView? = nulltv?.text = ""// badlateinit var tv: TextViewtv!!.text = ""2、可空参数与返回 + 类型转换// 可空参数与返回fun init(name: String?, age: Int?):String? { }// 类型转换 as?// Good(context as?
2021-03-28 02:00:18
607
tinkerDemo的两个apk可以安装试一下
2016-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人