- 博客(248)
- 收藏
- 关注
原创 Android-技术的下半场
安全专题 安全专题就离多数比较远了,这里我们讲解一些常见的和业务相关的安全话题,具体后续补充。高可用专题 后续补充GC专题 后续补充。
2024-05-29 13:46:24
1081
1
原创 android 设置系统dialog 样式
同样由于App theme的许多属性并不是public的(比如下面要提到的标题下面的那条蓝线),所以我们要继承自一个原生的style。标题下面的蓝色的线,并不是在Dialog或AlertDialog中设置或通过它们的style中定义的。在这里我参考了原生的alertDialog的style,设定了窗口背景为透明,以及windowContentOverlay为null这两个重要属性,否则你会看到在AlertDialog下面还有一层对话框的背景,或者是对话框的背景遮住了所有内容这样的问题存在。
2024-05-29 13:29:54
616
原创 android 设置系统dialog 样式(1)
接下来,我们需要在我们的App theme中指定我们的对话框使用这种主题,所以需要定义一个App theme。同样由于App theme的许多属性并不是public的(比如下面要提到的标题下面的那条蓝线),所以我们要继承自一个原生的style。在这里我参考了原生的alertDialog的style,设定了窗口背景为透明,以及windowContentOverlay为null这两个重要属性,否则你会看到在AlertDialog下面还有一层对话框的背景,或者是对话框的背景遮住了所有内容这样的问题存在。
2024-05-29 13:29:24
336
原创 Android 布局阴影实现
这是我比较推荐的方式,可参考CardView的阴影实现自定义一个阴影布局实现。其实现是通过实现。相较于来说,可供选中的实现方式要多一个blur实现类型,效果更好些,所以我是通过使用来实现自定义阴影布局。
2024-05-29 13:07:35
636
原创 Android 市场的变化,影响多少开发者被迫进阶?
从现在看起来这些话题,已经不足为奇了,不管在任何行业,任何岗位,初级技术人才总是供大于求,都是不好找工作的,Android开发只是其中之一同样,不管任何行业、岗位,技术过硬的也都是非常吃香的!说到底,并不是Android行业凉了,凉了的是你自己。技术技能不过硬,不管你转行去哪个行业或岗位都是一样的结果。
2024-05-29 13:07:04
794
原创 Android SystemUI源码分析与修改
在private void prepareNavigationBarView() {……对应的函数getAddVolume()和getAddVolume()要在。最后就是功能实现了,在。
2024-05-29 12:47:16
286
原创 Android IOS WebRTC 音视频开发总结(七一)-- H265 H264有何不同
比起H.264/AVC,H.265/HEVC提供了更多不同的工具来降低码率,以编码单位来说,H.264中每个宏块(marcoblock,MB)大小都是固定的16x16像素,而H.265的编码单位可以选择从最小的8x8到最大的64x64。信息量不多的区域(颜色变化不明显,比如车体的红色部分和地面的灰色部分)划分的宏块较大,编码后的码字较少,而细节多的地方(轮胎)划分的宏块就相应的小和多一些,编码后的码字较多,这样就相当于对图像进行了有重点的编码,从而降低了整体的码率,编码效率就相应提高了。
2024-05-29 12:25:48
271
原创 Android ImageView蒙版、高斯模糊
关于ImageView蒙版、高斯模糊的实现方法,蒙版实现原理很简单,就是继承自ImageView绘制透明涂层,高斯模糊,可以直接使用Glide中apply() 方法实现!这两个功能我封装到了一起!自定义MaskImageView。
2024-05-29 12:25:17
603
原创 ALIPAY WEB 登陆rsa加密 分析记录
json_ua 数据赋值 是json_ua对象得来的,再进行C 来url编码 var C = encodeURIComponent;就是去除密码的前面245位,然后调用 this.key.encrypt(t.substr(0, 245)) 加密,得到十六进制数。getRsaPassword 调用了 this._components.rsa.encrypt(e + t)得到输入的账号和密码,再进行rsa加密的密码。这个是网页发包数据,和分析的加密密码一样。接下来就是json_ua 的解密了。
2024-05-29 11:56:48
811
原创 2024年数据库期末考试考纲(1-3章)
不同的数据库系统都配有各自的DBMS,而不同的DBMS各支持一种数据库模型,虽然它们的功能强弱不同,但大多数DBMS的构成相同,功能相似。7、已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是 系编号 ,系关系的外关键字 无 ,学生关系的主关键字是 学号 ,外关键字 系编号。5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
2024-05-29 11:25:48
858
原创 字节跳动面试官亲述:问哪些问题能试出一个 Android 应用开发者真正的水平?
一个优秀的技术人,如果知识的深度与广度足够,知识已成体系,那么他对于一些从未接触过的领域,也是可以做出足够合理的想象与判断,面试过程中如果问到一些领域候选人没有涉猎,这时候一般不用过多纠缠,但如果你想借这个问题考察下他的技术想象力,可以深入下去,面试过程中如果问到一些领域候选人没有涉猎,这时候一般不用过多纠缠,但如果你想借这个问题考察下他的技术想象力,可以深入下去,这个酷炫的控件,如果要你来做,你会怎么实现?所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
2024-05-29 00:28:57
538
原创 字节跳动开源内部微服务中间件 CloudWeGo
Kitex 默认集成自研网络库 Netpoll 作为网络传输模块,性能相较使用 go net 有显著优势;除了网络库带来的性能收益,Kitex 对 Thrift 编解码也做了优化,这在之前的性能优化实践文章中有介绍。关于性能数据,可参考 https://github.com/cloudwego/kitex-benchmark。:Kitex 设计上做了模块划分,提供了较多的扩展接口以及默认的扩展实现,使用者也可以根据需要自行定制扩展。Kitex 未耦合 Netpoll,开发者可选择其他网络库扩展使用。
2024-05-29 00:28:27
953
原创 Android修行手册-TextView常用属性篇
往期文章分享👉众所周知,人生是一个漫长的流程,不断,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,!!!专注于和各种游戏开发技巧,以及(网站、工具、素材、源码、游戏等)有什么需要欢迎私我,交流群让学习。👉文字是人类用符号记录表达信息以传之久远的方式和工具。几千年来我们都在乐此不疲地使用它。于你于我于她,没有高低贵贱之分。TextView是Android中最简单也是最常见的控件。今天小空就带大家会会她。👉。
2024-05-28 23:27:45
842
原创 鸿蒙Ability学习
跨设备迁移,支持,就是将一个页面从 A 设备转移到 B 设备,这是万物互联的一个体现。其步骤大概三步走:设备A上的Page请求迁移HarmonyOS 处理迁移任务,并回调设备A上Page的保存数据方法,用于保存迁移必须的数据HarmonyOS 在设备B上启动同一个Page,并回调其恢复数据方法。
2024-05-28 21:39:10
917
原创 高级UI晋升之触摸事件分发机制(一)
按下、滑动、抬起、取消这几种事件组成了一个事件流。事件流以按下为开始,中间可能有若干次滑动,以抬起或取消作为结束。在安卓对事件分发的处理过程中,主要是对按下事件作分发,进而找到能够处理按下事件的组件。对于事件流中后续的事件(如滑动、抬起等),则直接分发给能够处理按下事件的组件。故本文讨论的内容则是主要针对按下事件的。
2024-05-28 21:38:06
669
原创 没有对象怎么面向对象编程呢?真让人头秃!
horse2没有实例化,但是把horse1赋值给horse2了,赋值的过程就是,将horse1的地址给了horse2,所以现在是horse1和horse2指向了同一块内存,所以现在把horse2.name=“嘿嘿”,你打印出来horse1的name也等于嘿嘿。这个赋值过程和上边的是一样的,不一样的是horse2原先指向的内存,因为没有被指向,所以它会被gc认为是垃圾就会被释放掉,什么是gc呢,gc就是虚拟机里的Garbage Collection垃圾回收器。//有了对象,我们就可以调用对象的属性和方法。
2024-05-28 21:05:10
288
原创 图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理
1.500-1000:指定开始和结束的范围,一般用于多线程下载。2.500- :指定开始区间,一直传递到结束。这个就比较适用于断点续传、或者在线播放等等。3.-500:无开始区间,只意思是需要最后 500 bytes 的内容实体。4.100-300,1000-3000:指定多个范围,这种方式使用的场景很少,了解一下就好了。HTTP 协议是一种双边协商的协议,既然请求头部已经确定是使用 Ranges 了,还有响应头部中,也需要使用这个响应头来标记响应的实体内容范围。
2024-05-28 20:34:18
737
原创 [译] google会背叛并杀死Android吗?
OpenJDK和Android的许可协议都不会改变,所以OpenJDK并不是Google的安全选择。只是在那个时候,谷歌已经实在是没有办法去说服美国联邦巡回上诉法院相信Java API是没有版权的。最高法院拒绝了谷歌的请求,要求审理此案。与此相比,与OpenJDK相关的风险不再那么大,所以Google决定整合它。但是请不要误会 - 谷歌与Android中的OpenJDK相关的风险仍然很大。
2024-05-28 20:04:37
975
原创 [Android]从源码的角度理解为什么Dialog不能在Application中展示
try {在这个方法中,我们找到了抛出异常的地方,当res的值为WindowManagerGlobal.ADD_BAD_APP_TOKEN或则WindowManagerGlobal.ADD_BAD_SUBWINDOW_TOKEN时,会抛出文章开头处的错误。这个res是方法的返回值。IWindowSession是一个Binder接口,负责ViewRootImpl和WindowManagerService的通信,在ViewRootImpl对象创建时获取。在这里。
2024-05-28 20:04:06
964
原创 FFmpeg之OpenGL绘制与Native-Window绘制(五)
0.2f, 0.2f, 0.0f, 0.0f, 1.0f,0.2f, -0.2f, 0.0f, 1.0f, 0.0f,};在空间中的分布位置及顺序点绘制设置点的大小glPointSize(5);glDrawArrays(GL_POINTS, 0, 6);效果线段绘制设置线段的宽glLineWidth(10);glDrawArrays(GL_LINES, 0, 6);效果多线段绘制glDrawArrays(GL_LINES, 0, 6);效果循环线绘制glDrawArrays(GL_LINE_
2024-05-28 19:27:52
681
原创 Eclipse连接sqlserver2019
官网]: https://docs.microsoft.com/zh-cn/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?若出现“不能打开到主机的连接,在端口1433:连接失败”则说明1433端口没有打开,可以重启电脑再走一遍以上配置流程,仍无法成功进入3.这个界面,那我也不知。将其中的三项jar文件复制到你电脑中的jdk所在的文件下的lib文件中,比如我的jdk装在名为javaJDK的文件里,打开它能看到有一个lib文件,
2024-05-28 19:26:48
260
原创 Android应用优化之流畅度实操
UI布局优化使用LinearLayout代替RelativeLayout,因为LinearLayout性能上稍微好一点如果复杂的布局,我们可以使用RelativeLayout来解决复杂的布局关系尽量少用LinearLayout的layout_weight属性,因为它会消耗较大的性能对应可以复用的布局使用include标签来进行复用使用ViewStub标签来加载一些不是必定出现使用的布局使用merge来减少不必要的层级嵌套去除多余的背景颜色,减少过度绘制问题。
2024-05-28 18:58:49
657
原创 Android常见问题及开发经验总结(四)
Bundle内部是由ArrayMap实现的,ArrayMap的内部实现是两个数组,一个int数组是存储对象数据对应下标,一个对象数组保存key和value,内部使用二分法对key进行排序,所以在添加、删除、查找数据的时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大的情况下,那么它的性能将退化。2.如果是用户上传的图片,的一般会处理成jpg格式,上传到服务器后会做webp的转化,别的用户看到的图片就是webp格式的,图片质量不仔细研究看不出来和jpg原图的差别,但是流量却节省了非常多;
2024-05-28 18:58:17
548
原创 Android Studio之Gradle多渠道打包
除此之外 assemble 还能和 Product Flavor 结合创建新的任务,其实 assemble 是和 Build Variants 一起结合使用的,而 Build Variants = Build Type + Product Flavor。**: 允许构建指定Build Type的所有APK,例如assembleDebug将会构建Flavor1Debug和Flavor2Debug两个Variant版本。这条命令会把Product Flavor下的所有渠道的Release版本都打出来。
2024-05-28 18:31:23
521
原创 Android Camera 拍照 三星BUG总结
Log.i(“123—savedInstanceState”, “图片拍摄成功”);Log.i(“123—savedInstanceState”, “图片拍摄失败”);照片生成的目录在 sd卡的/a/image/camera/…照片生成的目录在 sd卡的/a/image/camera/…照片生成的目录在 sd卡的/a/image/camera/…//根据时间生成 后缀为 .jpg 的图片。// ┃ ┃ 代码无BUG!// 根据照片的位置获取图片。// ┃ ┃ 神兽保佑。
2024-05-26 17:53:28
293
原创 Android Studio下载安装教程及开发环境搭建
如果需要修改字体样式 ,需要先从 Available fonts中双击加到右边的select Fonts里面,然后最右边的上下按钮,调整位置。里面和eclipse创建项目差不多,输入项目名,选择编译环境,然后亮点就是可以选择theme了。看了一下大体的菜单布局,和eclipse还是蛮像的。但是一些菜单位置是变化了的。关于Studio的基本功能大体就是这样啦,其它的操作和 eclipse差不多,再讲就重复了。关于Studio的基本功能大体就是这样啦,其它的操作和 eclipse差不多,再讲就重复了。
2024-05-25 21:34:47
233
原创 Android Studio—PullToRefresh 框架
id_lv_test.getLoadingLayoutProxy(false,true).setPullLabel(“上拉加载更多.”);Log.d(TAG,"下拉动作 : " + Thread.currentThread().getId());mList.add("新数据 - " + mLvAdapter.getCount());当设置rotate时,可以用这个来设置刷新时旋转的图片。插入PullToRefreshListView。Activity 中设置下拉刷新监听。// 设置下拉刷新监听.
2024-05-25 21:34:16
263
原创 6年菜鸟开发面试字节跳动安卓研发岗,含小米、腾讯、阿里
简单说一下当时的状况,我在这家公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后,周末最多只有一天休息。在最困难的时候,老板给大家打气,“大家再坚持坚持,项目上线赚钱了,就给大家涨工资,公司是绝对不会亏待大家的”,在老板豪情壮语的加薪鼓励下,大家要紧牙关拼上了。而关于(2),却是事实:由于新的项目还在调研中,所以,我的工作暂时就轻松了不少,主要就是维护线上的系统,加加小功能,修修小bug,比较清闲。
2024-05-25 20:25:04
291
原创 6年老Android面经总结,值得收藏!
我们的项目需要开发一款智能硬件。它由 Web 后台发送指令到一款桌面端应用程序,再由桌面程序来控制不同的硬件设备实现业务上的操作。从 Web 后台到桌面端是通过一个 WebSocket 长链接来进行维护,而桌面程序到各个硬件设备也是一个 TCP 长链接来维护的。本文讲述的,其实是从桌面程序到各个硬件之间的通讯。
2024-05-25 20:24:34
330
原创 Activity跳转你所不知道的生命周期
【Android 详细知识点思维脑图(技能树)】我个人是做Android开发,已经有十来年了,目前在某创业公司任职CTO兼系统架构师。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。
2024-05-23 21:29:51
697
原创 Activity管理(二):adj内存管理机制
(一)调整好心态心态是一个人能否成功的关键,如果不调整好自己的心态,是很难静下心来学习的,尤其是现在这么浮躁的社会,大部分的程序员的现状就是三点一线,感觉很累,一些大龄的程序员更多的会感到焦虑,而且随着年龄的增长,这种焦虑感会越来越强烈,那么唯一的解决办法就是调整好自己的心态,要做到自信、年轻、勤奋。这样的调整,一方面对自己学习有帮助,另一方面让自己应对面试更从容,更顺利。(二)时间挤一挤,制定好计划一旦下定决心要提升自己,那么再忙的情况下也要每天挤一挤时间,切记不可“两天打渔三天晒网”。
2024-05-23 21:29:16
824
原创 nps实现内网穿透,将公网服务器端口映射到内网服务器端口_nps端口映射(1)
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份。
2024-05-17 02:52:09
832
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人