- 博客(9)
- 收藏
- 关注
原创 C#实现异步Socket通信(控制台)_c# socket 异步accept
state | 表示状态信息,必须保证state中包含socket句柄 |写在回调函数中,用于获取客户端套接字调用该函数后,程序继续执行,有客户端连接上,回调函数会执行。写在BeginReceive函数中,用于得到接收数据的大小。异步服务端如图:服务端需要处理多个客户端消息,所以需要一个数组维持这些客户端的连接。每个客户端都有自己的名字,Socket和缓冲区。所以定义Conn类来描述客户端连接,然后用Conn数组维持所有客户端的连接。
2024-09-22 12:33:13
1241
原创 Android架构组件简介(1)
2. Android架构新的定义了一个好的Android应用程序应该遵循的一些关键原则,并为开发人员提供了一个安全的途径来创建一个好的应用程序。但是,该指南明确指出所提出的路线不是强制性的,最终决定是个人的;开发人员应该决定采用哪种类型的架构。根据该指南,一个好的Android应用程序应该提供一个牢固并从一个模型驱动UI。任何不处理UI或操作系统交互的代码都不应该在Activity或Fragment中,因为尽可能保持它们干净将允许您避免许多与生命周期相关的问题。毕竟,系统可以随时销毁活动或碎片。
2024-09-22 11:29:43
970
原创 Android开发技巧!如何才能通过一线互联网公司面试?知乎上已获万赞_互联网面试问题 知乎
一面大概面了50多分钟,从面试官口中得知他是一个老员工,比我大不了多少,总体上还是聊得蛮投机的。最后的三个问题是我问面试官的,在回答我是否还有机会下次面试的时候说:竞争很激烈,不过机会还是有的。可以看出一面的问题不是很难,但是要得到面试官比较高的评价,还是需要一定的表达能力和对技术比较本质的认识的,如果在回答问题的时候能够做一些适当的扩展,自然会让面试官对你有不一样的评价。我回答问题的遵循一定的步骤:先回答问题本质,在回答具体细节,最后做一些平时编程中的扩展。
2024-09-22 08:51:05
1059
原创 Android图片加载框架最全解析(六),探究Glide的自定义模块功能
56789101112131415161718192021222324252627282930313233343536373839404142434445这个方法中会创建BitmapPool、MemoryCache、DiskCache、DecodeFormat等对象的实例,并在最后一行创建一个Glide对象的实例,然后将前面创建的这些实例传入到Glide对象当中,以供后续的图片加载操作使用。但是大家有没有注意到一个细节,createGlide()方法中创建任何对象的时候都做了一个空检查,只有在对象为空的时候
2024-09-22 06:14:40
401
原创 AndroidX了解一下
简单地说就是新的库可以在不同的Android版本上使用。比如之前我们如果使用support为27.1.1的相关依赖库时。可能需要所有相关的support库都为27.1.1。如果其中有bug的话,可能需要所有的都去升级,存在一个绑定关系,而且正式版的发布周期也很长。通过AndroidX,我们可以看到实时实现的特性和bug修复。升级个别依赖,不需要对使用的所有其他库进行更新。这就和我们使用Github上的开源库一样的,出了问题,我们可以提出bug和意见。作者修复后,发布新版本,我们就可以直接替换使用了。
2024-09-22 03:42:24
892
原创 Android 轻量级存储方案的前世今生
所以还是推荐使用第一种方案。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用 read,write等系统调用函数。这里就存在优化的空间,比如对于同一个 sp 文件,连续调用 n 次apply,就会有 n 次写入磁盘任务执行,实际上只需要最后执行最后那次就可以了,最后那次提交对应内存的 map 是持有最新的数据,所以就可以省掉前面 n-1 次的执行,这个就是android 8.0中做的优化,是使用版本来进行控制的。
2024-09-22 01:03:54
791
原创 Android studio插件开发
之后我们可以看到项目目录下生成了hello.jar,我们在android中选择plugins菜单,选择本地安装插件选择生成的jar,就可以在android studio中使用我们的插件了。接下来我们点击run按钮,会自动打开一个新的idea窗口,我们在生成的新的idea窗口中,选中code菜单,我们看到在第一行有一个hello的按钮就是我们的插件。打开idea,新建项目,选择IntelliJ Platform Plugin,第一次新建需要设置sdk的位置,选择位置即可。项目创建完成后,目录结构如下所示。
2024-09-21 19:54:27
1066
原创 Android Fragment滑动切换_滑动切换fragment
Fragment左右滑动切换,是APP中常用的功能效果。其实现依附于控件viewPager,而该控件隶属于android.support.v4.view。在Android Studio的UI Desgin界面中,并没有直接提供该控件,因此需要切换至代码界面进行手动添加。实现中,附加了底部TAB的颜色变化,该变化是通过添加OnPageChangedListener来实现。需要做的就是实现并设置viewPager的FragmentPagerAdapter。先上Adapter代码实现。我们先看一下实现效果。
2024-09-21 17:06:56
670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人