- 博客(30)
- 收藏
- 关注
原创 android 读取手机通讯录并显示listview
/ photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的。// photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的。// 得到联系人头像Bitamp。/** 联系人显示名称 **//** 联系人显示名称 **//** 联系人的ID **//** 联系人的ID **//** 联系人名称 **//** 联系人号码 **//** 联系人头像 **//** 联系人名称 **//** 电话号码 **//** 头像ID **/// 得到联系人头像ID。
2025-02-08 02:04:39
677
原创 Android Socket使用详解
即套接字,是一个对 TCP / IP协议进行封装 的编程调用接口(API)即通过Socket,我们才能在Andorid平台上通过TCP/IP协议进行开发Socket不是一种协议,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)成对出现,一对套接字:Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)}
2025-02-07 23:50:23
1520
原创 Android Skia的绘制系统
skia的代码分两个部分,这个图里面的主要是hwui中的,还有一部分是skia独立的静态库中!skia有对应的结构和hwui匹配!tryCapture截图一样的,一般不打开的,debug用renderLayersImpl 把需要渲染的Layer先渲染掉前端renderFrameImpl 后端,绘制到OpList。flush这才是真正的绘制到Buffer三、渲染设备Deviceskia定义了各种你绘制的设备Device,实现各自的绘制功能!我们来看看Device相关的类!image。
2025-02-07 23:48:19
850
原创 Android SDK 开发经验浅谈
相信做 Android 开发的同学,肯定使用过很多第三方的 SDK,比如极光 SDK、支付宝 SDK、微博 SDK 等等。所谓 SDK 就是一个开发工具包,全称是 Software Development Kit,翻译过来是软件开发工具包。SDK 通常是为辅助开发某类软件而编写的特定软件包。App 开发与 SDK 开发的工作有什么区别呢?App 开发更偏向于用户层面,从 UI 展示到业务逻辑处理,全程处理用户的行为。而 SDK 开发更偏向于功能方面,注重功能的开发实现,轻 UI。2. SDK 设计原则。
2025-02-07 23:46:15
663
原创 Android自定义View:MeasureSpec的真正意义与View大小控制
这里重点讲一下ViewGroup,为了获得合理的宽高尺寸,ViewGroup在计算自己尺寸的时候,必须预先知道所有子View的尺寸,举个例子,用一个常用的流式布局FlowLayout来讲解一下如何合理的设定自己的尺寸。EXACTLY(完全),父控件为子View指定确切大小,希望子View完全按照自己给定尺寸来处理,跟上面的场景1跟2比较相似,这时的MeasureSpec一般是父控件根据自身的MeasureSpec跟子View的布局参数来确定的。一般这种情况下size>0,有个确定值。
2025-02-06 17:31:36
683
原创 Android自定义View绘图基础
View的测量控件的测量可以说是固定写法,原生的View只支持EXACTLY的测量模式,我们自定义的控件可以重写onMeasure方法onMeasure方法给我们返回的和,我们并不能直接拿过来使用,需要使用类进行解析,来获取测量后的具体值。首先需要获取测量模式getMode方法返回是测量的模式,有以下3种类型:- MeasureSpec.EXACTLY : 精确值模式(指定值/match_parent)- MeasureSpec.AT_MOST : 最大值模式(wrap_content)
2025-02-06 17:29:49
421
原创 轻松拿下53W字节offer,刚入职就降薪!咋回事?
软件测试工作是产品上线过程中必不可少的一环,对产品安全性至关重要,随着用户越来越注重产品的体验感,以及用户隐私越来越被重视,软件测试岗位也越来越受重视!所幸,他们遇到了黑马程序员,选择了软件测试这个互联网黄金岗位,并最终分别以15K、18.5K、14k 的薪资成功转行!在互联网行业工作,你永远不知道意外和明天哪一个先来,假如你没有抵御风险的能力,不如像上述同学一样,来黑马程序员学习软件测试!就像普通大学的韦同学、李同学、左同学,之前分别从事金融、口腔技师、运营专员,薪资普遍只有5-8K,职业前景暗淡。
2025-01-29 22:47:15
295
原创 轻松上手 Android蓝牙基础开发(2)
服务中包含一系列的特征值。例如,我们可以使用名为 “心率监测器”的服务,其中包括"心率测量"等特征。可以在上找到基于 GATT 的现有配置文件的服务的列表。
2025-01-29 22:45:08
756
原创 归纳:数据库设计的六个阶段详解(有这一篇就够了)
进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。:概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归钠与抽象,形成一个独立于具体DBMS的概念模型。:逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。
2025-01-29 04:44:23
200
原创 强哥说Java--Java String和StringBuilder
与String相似,也是一个与字符串相关的类Java 官方文档给可变的字符序列。了解了类 ,也是不得不提的一个类,Java 官方文档给出的定义是:线程安全的可变字符序列。
2025-01-29 04:40:11
1636
原创 前端开发者必备的 12 个工具
如果你使用 Chrome 并且想要在页面上编辑 CSS,那么可以使用审查元素特性(译者注:Google Chrome 浏览器打开网页后,点击右键出现的菜单:Inspect/ 审查),但是它可能太过于灵活。我用Marmoset为我的代码拍了一些很酷的快照,然后把这些快照放在我的幻灯片上,从而给人留下好印象。我使用Window Resizer来调整我的网页浏览器窗口的大小,以模拟不同的屏幕分辨率。它还创建了使用某些技术的网站列表,这些技术可以帮助你了解如何构建客户的网站。不用说,我的代码幻灯片一点也不无聊。
2025-01-28 18:54:21
567
原创 前端导出Excel实践指南
type, // 数据编码, 本文采用 binary 二进制格式bookType, // 导出类型, 本文采用 xlsx 类型compression, // 是否使用 Gzip 压缩下载文件想要下载文件, 我小A第一个表示不服, 申请出战 <a 标签的 download 属性>通过 URL.createObjectURL(Object) 来创建下载所需的 URL. 由于每次调用都会产生新的 URL 对象, 故使用后记得释放, 释放方法 URL.revokeObjectURL(FileUrl)
2025-01-28 18:50:07
677
原创 vue-router 4 你真的熟练吗?
注意:之前 component 引入组件的时候,后边可以省略 .vue 后缀,但在 vue-router 4这不能省略后缀,否则就报错了。导航守卫主要用来通过跳转或取消的方式守卫导航,有很多种方式植入路由导航中:全局的、单个路由独享的或者组件级的。组件内的守卫与之前使用不同,vue-router4中,需要从vue-router内引入需要的插件。添加子路由时,第一个属性值是父级路由的 name 属性值。在 事件中获取 router ,进行路由跳转等操作。console.log(‘路由独享守卫’);
2025-01-28 09:47:30
606
原创 vue+uni-app+php+myql毕业设计作品成品(8)在线外卖点餐系统设计与实现_vue+php
基于Vue.js外卖点餐系统是计算机技术与餐饮管理相结合的产物,通过该系统实现了对餐饮订单的高效管理。随着计算机技术的不断提高,计算机已经深入到社会生活的各个角落。在工作人员的具备一定的计算机操作能力的前提下,特编此基于Vue.js外卖点餐系统软件以提高餐饮效率。
2025-01-28 09:45:28
227
原创 Python游戏开发:创造乐趣与挑战的世界_python在游戏开发方面的挑战有哪些
Python作为一门广泛应用于游戏开发的编程语言,提供了多个开源的音频库,其中最常用的是Pygame.mixer和pydub,它们可以帮助开发者为游戏添加适当的声音效果。而通过物理模拟,我们可以模拟真实世界中的物理规律,为游戏中的角色和物体添加重力、弹性和摩擦等效果,使得游戏更加真实和可信。首先,Python的官方文档是一个宝贵的资源,提供了详细的说明和示例代码,涵盖了各种游戏开发相关的主题,如Pygame库的使用、图形渲染、物理模拟等。这样,我们可以为游戏增添声音的氛围和交互性,提升玩家的游戏体验。
2025-01-24 16:31:47
562
原创 Python 在问答频道中刷题积累到的小技巧(五)_class banana def init_(self,c,k,d,s) self
【代码】Python 在问答频道中刷题积累到的小技巧(五)_class banana def init_(self,c,k,d,s) self。
2025-01-24 02:14:15
385
原创 MySQL高频面试题,都在这了!
因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID,由于到来的ID与原来的大小不确定,会造成非常多的数据插入,数据移动,然后导致产生很多的内存碎片,进而造成插入性能的下降.总之,在数据量大- -些的情况下,用自增主键性能会好一-些.
2025-01-24 00:39:59
571
原创 LINUX环境:MySQL和Oracle开机自启动_linux oracle_home_listner未设置
添加服务:显示服务列表:如果看到MySQL的服务,并且3,4,5都是on的话则成功,如果是off,则使用如下命令:-rwxr-x—. 1 oracle oinstall 6088 1月 1 2000 dbshut-rwxr-x—. 1 oracle oinstall 13892 12月 11 16:01 dbstart。
2025-01-23 22:59:56
510
原创 JS面试题汇总(一)
在介绍第三种的创建方法之前,我们应该要明白为什么还要用别的方法来创建对象,也就是第一种,第二种方法的缺点所在:它们都是用了同一个接口创建很多对象,会产生大量的重复代码,就是如果你有 100 个对象,那你要输入 100 次很多相同的代码。在使用工厂模式创建对象的时候,我们都可以注意到,在 createPerson 函数中,返回的是一个对象。不适合的就有很多了,举个例子,mousemove,每次都要计算它的位置,非常不好把控,在不如说 focus,blur 之类的,本身就没用冒泡的特性,自然就不用事件委托了。
2025-01-23 21:38:30
635
原创 Java编程:普里姆算法(已知起点求最小生成树)
普利姆(Prim)算法求最小生成树,也就是在包含n个顶点的连通图中,找出只有(n-1)条边包含所有n个顶点的连通子图,也就是所谓的极小连通子图。若集合U中顶点ui与集合V-U中的顶点vj之间存在边,则寻找这些边中权值最小的边,但不能构成回路,将顶点vj加入集合。i++) { // i结点表示被访问过的结点。若从顶点u开始构造最小生成树,则从集合V中取出顶点u放入集合U中,标记顶点v的visited[u]=1。设G=(V,E)是连通网,T=(U,D)是最小生成树,V,U是顶点集合,E,D是边的集合。
2025-01-23 18:58:22
423
原创 JAVASE之图书管理系统(1)
System.out.println(“图书编号”+" 图书名称"+" 图书价格");System.out.println(“--------不存在此编号!System.out.println(“----不存在此编号!System.out.println(“- 图书管理系统2.0版 -”);System.out.println(“输入要删除的图书编号:”);System.out.print(“–输入要修改的编号:”);//把输入的属性通过构造函数传入类数组对象中。
2025-01-23 17:37:06
342
原创 IOS开发之——UITabBarViewController控制器加载(63)
当页面要显示时,会先后执行viewDidLoad,viewWillAppear,viewDidAppear当切换到第二个页面时:先执行第二个页面的viewDidLoad,viewWillAppear,再执行第一个页面的viewWillDisappear,viewDidDisappear,最后执行第二个页面的viewDidAppear:在视图加载后被调用,如果是在代码中创建的视图加载器,他将会在loadView方法后被调用,如果是从nib视图页面输出,他将会在视图设置好后后被调用。
2025-01-23 16:16:50
339
原创 Github标星25K+超火的Android实战项目,含BATJM大厂_android实战项目实力
现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。
2025-01-23 14:47:31
641
原创 ECMAScript 6 简明教程(一文搞懂ES6)_ecmascript教程
/ “value 与 ‘a string’ 关联”// “value 与 keyFunc 关联”// “value 与 keyObj 关联”myMap.set(keyString, “value 与 ‘a string’ 关联”);myMap.set(keyFunc, “value 与 keyFunc 关联”);myMap.set(keyObj, “value 与 keyObj 关联”);model, // 等同于 model: model。value, // 等同于 value: value。
2025-01-23 01:04:50
702
原创 ConcurrentHashMap扩容?lastRun到底是个啥?(普通链表)我真是个呆瓜!
/ 对于同一个hash值,n=16和n=32这个式子计算出来是不一样的,而中间正好相差n,就是数组的长度,所以这里把高位链添加到i+n的地方。// 这个 lastRun 保证后面的节点与自己的取于值相同,避免后面没有必要的循环,因为上面是从p开始循环的。// 这个 lastRun 保证后面的节点与自己的取于值相同,避免后面没有必要的循环,因为上面是从p开始循环的。//1n表示低位,hn表示高位;//下一个节点的hash&n 当前节点的hash&n,因为一直循环所以就是尾结点和头结点的hash&n比较。
2025-01-22 23:31:39
733
原创 Android面试官感悟:年后跳槽季,这6大技巧教你在面试中大获成功挤入一线互联网大厂!_总结 android 启动流程话术
虽说Android开发工程师也需要掌握一定的算法,不过和那些专业做算法的相比肯定是没那么高的要求的,我们并不需要把LeetCode的每道题都刷一遍,只要把一些简单和中等难度的题刷一遍就可以了。以上我列举的基本上都是我们平时开发过程中经常使用到的开源项目,认真研究和分析他们的设计思想和精髓,并积极运用到我们平时的编码当中去,可以让我们的技术得到质的飞跃!面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
2025-01-22 22:01:05
515
原创 Android几种强大的下拉刷新库
(3)那时候看了知乎的客户端,下拉刷新很炫,查了下是用什么实现的,最终知道是用 chrisbanes/ActionBar-PullToRefresh 的库可以实现那种效果,又去学了,啊哈哈,然而过些日子也没见人用了,啊哈哈哈。(20)WaterDropListView如果你用过ios的qq,那应该很熟悉这种刷新了,效果还是蛮不错的,就是不知道为什么android版本的qq不用,呵呵。这是一个下雨刷新,你没听错,确实一刷新就下雨,为什么会出现,只是我的好奇心而做的东西,见怪不怪了,呵呵。
2025-01-22 20:39:54
638
原创 Android Studio上Kotlin的入门
2016年,Kotlin发布了1.0正式版,JetBrains在自家的旗舰开发工具IntelliJ IDEA中加入了对Kotlin的全面支持,Kotlin在这时期,已经足够成熟和稳定了。读者可以看到,Kotlin中Int的首字母是大写的,而Java中int的首字母是小写的。在java中,int是关键字,而在Kotlin中,Int是一个类,它有自己的方法和数据结构。创好了后,我们打开MainActivity,可以看到,比起java,Kotlin的代码要少一些,写类和方法的语法规则也不同。
2025-01-22 19:18:31
1890
原创 8 个迹象表明你不适合成为程序员_感觉自己不太适合做开发
如果没有自然的好奇心,你会变得目光狭窄。你会很难想出新的想法。此时,编程变成了乏味的工作,失去了最初吸引你进入科技行业的激情。除非你有极强的内在的动力,否则你在任何事情上都不会成功。这是一个普遍的真理,但在编程中尤为重要。一个优秀的程序员能够自我激励。撇开其他层面,编程和其他职业一样,基本上是重复性的工作。如果你在作为开发人员所需的工作类型上投入困难,你将会挣扎,很可能会烧尽自己。你必须能够自主解决问题。许多新问题将与上周的问题相似。当一名管道工人在客户家中出现时,他不会要求修理一种新型的水槽。
2025-01-22 17:53:06
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人