- 博客(52)
- 收藏
- 关注
原创 Processes and Threads 进程和线程,android移动开发基础案例代码
(because another component from the application exists),then the component is started within that process and uses the same thread of execution.如果应用组件开始时,并且该应用存在一个进程(因为该应用的其他组件在运行),那么该组件在此进程中启动,并使用同一个执行线程。However, you can arrange for different component
2021-12-10 18:17:43 272
原创 Probe:Android线上OOM问题定位组件,搞懂开源框架设计思想真的这么重要吗
void Heap::ThrowOutOfMemoryError(Thread* self, size_t byte_count, AllocatorType allocator_type)抛出时的错误信息:oss << “Failed to allocate a " << byte_count << " byte allocation with " << total_bytes_free << " free bytes and " <
2021-12-10 18:15:38 360
原创 MyBatis(5)Mybaits多对多查询,快速上手
在OrderDetail中添加Items属性,将订单明细所对应的商品映射到Items。(一对一)2.2实现2.2.1 属性的添加User实体:public class User {…//用户创建的订单列表private List ordersList;…}Orders实体:public class Orders {…//订单明细private List orderdetails;…}Orderdetail实体:public class Orderdetail {…/
2021-12-10 18:07:51 1402
原创 Linux虚拟机与Windows宿主机间的通信,手机开发软件
三条路线,大家根据不同颜色来区分,下面我们讲一下这些个部分对应啥玩意。宿主机宿主机很好理解,就你你本地电脑嘛,他有个IP地址,在 网络连接 里可以看,如下图:在这里,你得关注以下东西:IPv4地址:机器的唯一标识符,如你得身份证。IPv4子网掩码:确定了网络号和主机号位数。IPv4默认网关:路过的数据包该往那个路由器上丢,是访问外网的去路。IPv4DHCP服务器:负责分配子网IP地址。IPv4DNS服务器:负责域名解析。这个我分析的比较透彻,后面的大家自行对比分析。VMnet8.
2021-12-10 18:01:12 1839
原创 Jetpack 架构组件之 Lifecycle (二) 使用,含答案解析
//状态/**Lifecycle states. You can consider the states as the nodes in a graph and{@link Event}s as the edges between these nodes.*/public enum State {DESTROYED,INITIALIZED,CREATED,STARTED,RESUMED;public boolean isAtLeast(@NonNull State stat
2021-12-09 14:19:30 111
原创 Jetpack Compose 自定义布局以及固有特性测量,安卓内存监控apk
}CornerPosition.BottomLeft->{placeable.placeRelative(0, constraints.maxHeight-placeable.height)}CornerPosition.BottomRight->{placeable.placeRelative(constraints.maxWidth-placeable.width, constraints.maxHeight-placeable.height)}}}}复制代码首先我
2021-12-09 14:17:23 176
原创 Java面试题十四:HashMap,android性能优化面试
static final int hash(Object key) {int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}3、什么情况下转为红黑树,代码体现?==================![](https://img-blog.csdnimg.cn/20210512185332108.png?x-oss-pro《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实
2021-12-09 14:15:27 882
原创 Java的Url编码和解码,2021年不想被公司优化
//将application/x-www-form-urlencoded字符串//转换成普通字符串//必须强调的是编码方式必须正确,如baidu的是gb2312,而google的是UTF-8String keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", “gb2312”);System.out.println(keyWord);//将普通字符串转换成//application/x-www-form-urlencoded字符串//必须强调的是编码
2021-12-09 14:13:19 333
原创 Java 设计模式归纳(观察者、工厂、单例,进阶学习资料
observerUser1 = new ObserverUser1(objectFor3D);observerUser2 = new ObserverUser2(objectFor3D);// 两个观察者,发送两条信息objectFor3D.setMsg(“201610121 的 3D 号为:127”);objectFor3D.setMsg(“20161022 的 3D 号为:000”);2. 工厂模式简单列一下这个模式的家族:1、静态工厂模式这个最常见了,项目中的辅助类,TextU
2021-12-09 14:11:43 142
原创 Java 垃圾回收(GC),kotlin开发windows程序
仍处于存活状态中的线程对象。Native 方法中 JNI 引用的对象。什么时候回收==============不同的虚拟机实现有着不同的 GC 实现机制,但是一般情况下每一种 GC 实现都会在以下两种情况下触发垃圾回收。Allocation Failure:在堆内存中分配时,如果因为可用剩余空间不足导致对象内存分配失败,这时系统会触发一次 GC。System.gc():在应用层,Java 开发工程师可以主动调用此 API 来请求一次 GC。如何回收垃圾========..
2021-12-09 14:10:15 1197
原创 IOS开发之——时钟(94),android界面设计规范
创建秒针CALayer设置秒针的锚点(anchorPoint),位置(position),尺寸(长度),颜色2.2 分针计算出时钟ImageView的大小(宽度和高度)创建分针CALayer设置分针的锚点(anchorPoint),位置(position),尺寸(长度),颜色2.1 时针计算出时钟ImageView的大小(宽度和高度)创建时针CALayer设置时针的锚点(anchorPoint),位置(position),尺寸(长度),颜色三 ..
2021-12-09 14:08:34 498
原创 IOS开发之——CABasicAnimation(95),看完直接怼产品经理
四 CAAnimation继承结构注意:图中的黑色虚线代表“继承”某个类,红色虚线代表“遵守”某个协议说明:CAAnimation遵守CAMediaTiming,可以给动画设置执行时长CAAnimationGroup:动画组(可以执行一系列动画)CABasicAnimation:单一组动画(formValue toValue)CAKeyframeAnimation:多组动画五 示例5.1 位移动画代码@property (nonatomic,weak) CALa
2021-12-09 14:06:47 355
原创 Handler机制与原理,android编程基础班
使用obtain获取Message对象是因为Message内部维护了一个数据缓存池,回收的Message不会被立马销毁,而是放入了缓存池,在获取Message时会先从缓存池中去获取,缓存池为null才会去创建新的MessageMessage的存储形式是什么Message的存储是链表的形式,next相当于链表的尾指针新的首部如果阻塞了,需要唤醒线程。为什么会有线程的阻塞呢?其实MessageQueue内部的消息是按需要发送的时间点从小到大排列的,后面会分析到,从当前if里的when判断也能看.
2021-12-09 14:05:04 85
原创 Flutter UI自动化测试技术方案选型与探索,初面蚂蚁金服
•不适用于混合栈APP,虽然appium中有相关的driver,但是无法切换环境。•元素定位能力相对薄弱。•依赖于VMService,需要构建Profile或Debug包。基于以上因素,我们并没有直接使用Google官方推出的工具,而是选择基于Native测试工具去扩展Flutter页面的测试能力。本文对Flutter driver 和Integration test的原理和实现进行了分析,同时简单介绍闲鱼在UI自动化测试的尝试方案。一、Flutter driver最早接触flutter自动化测试时
2021-12-08 17:54:13 553
原创 Flutter 2,kotlin静态
Flutter 2.0 正式版发布,全平台 StableFlutter 的目标是从根本上改变开发人员对构建应用程序的思路,让开发者从需要完成的用户需求开始实现,而不是从开发者需要适配的平台开始。Flutter 可以让你在拥有更好设计效果的情况下,得到更好的用户体验,因为它的运行速度很快,它会将源代码编译为机器代码,但是 Flutter 在开发过程中支持的 hotload,所以也可以在应用程序调试运行时进行更改并立即查看结果。最后,Flutter 是开放的,已经有成千上万的开发者成为了它的贡献者,并通.
2021-12-08 17:52:07 508
原创 FFmpeg之OpenGL绘制与Native-Window绘制(五),搭建android开发环境实验
glDrawArrays(GL_LINE_LOOP, 0, 6);效果独立三角形绘制一共六个顶点,相当于绘制了两个三角形glDrawArrays(GL_TRIANGLES, 0, 6);效果三角形条带绘制绘制了六个三角形,组成了一个矩形绘制glDrawArrays(GL_TRIANGLE_STRIP0, 6);效果三角扇面绘制以第一个点为共享点,和后续的点组成三角形。重新构建顶点数组float points[] = {0.0f, 0.0f, 1.0f, 0.0f, 0.
2021-12-08 17:50:02 427
原创 EventBus 源码解析及使用体验,1个月学会Android开发
既然register了,那么肯定得说怎么调用是吧。EventBus.getDefault().post(param);调用很简单,一句话,你也可以叫发布,只要把这个param发布出去,EventBus会在它内部存储的方法中,进行扫描,找到参数匹配的,就使用反射进行调用。现在有没有觉得,撇开专业术语:其实EventBus就是在内部存储了一堆onEvent开头的方法,然后post的时候,根据post传入的参数,去找到匹配的方法,反射调用之。那么,我告诉你,它内部使用了Map进行存储,键就是参数的Cl
2021-12-08 17:48:06 270
原创 EventBus 中文文档,基于android 的游戏怎么开发
}@Overridepublic void onStop() {EventBus.getDefault().unregister(this);super.onStop();}第三步:发布事件代码中的任意部分都可以发布事件。所有已注册并且匹配该类型的 Subscriber(订阅者)都会收到该事件:EventBus.getDefault().post(new MessageEvent(“Hello everyone!”));深入了解继续阅读,或者点击这个链接来认识 EventBus 的更多特
2021-12-08 17:45:58 130
原创 DES加密解密,kotlin数组
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_aes);mActivity = this;mContext = this;encryptionContext = (EditText) findViewById(R.id.et_encryption_context);encryption = (Button
2021-12-08 17:44:22 384
原创 C语言基础知识(三)-程序设计结构、数组、字符串处理函数,Android开发者必须收藏的8个开源库
rand()函数产生的是一个伪随机数,重复调用该函数所产生的随机数字是相同的。要想每次执行产生不同的随机数,就需要用srand()函数进行随机初始化。随机初始化函数srand()可以设置随机数生成器的种子,不同的种子将产生不同的随机数。在程序运行过程中时间是一直变化的,所以我们可以借助 time.h 库中的 time(NULL) 函数返回计算机当前的时间数,把它作为随机数生成器的种子,从而在每次执行 rand( ) 函数时产生一个不同的随机数。将当前时间设置为随机数生成器种子的代码如下:srand(t
2021-12-08 17:42:54 1007
原创 Cocos2d-x 3,Alibaba高并发业务实战文档
转载请注明:IT_xiao小巫Cocos2d-x截屏功能是从3.2开始提供的,本篇博客就是介绍Cocos2d-x 3.2中Lua示例中的截屏功能。效果如下所示:例子代码如下:–[[截屏测试CaptureScreenTest]]–– 获取屏幕大小local winSize = cc.Director:getInstance():getWinSize()local kTagSprite = 1local childTag = 119– 创建层local function creat
2021-12-08 17:41:13 2533
原创 BroadcastReceiver官方概览,kotlinandroid开发
发送广播通过权限限制广播带权限的发送带权限的接收安全注意事项和最佳做法相关文档:=====https://developer.android.google.cn/guide/components/broadcasts (谷歌官方文档)前言==Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。举例来说,Android 系统会在发生各种系统事件时发送广播,例如系统启动或
2021-12-08 17:39:25 128
原创 ARouter 源码解析:阿里推出的路由框架,android程序设计基础
// zip 结尾通过 DexFile.loadDex 进行加载dexfile = DexFile.loadDex(path, path + “.tmp”, 0);} else {// 否则通过 new DexFile 加载dexfile = new DexFile(path);}// 遍历 dex 中的 EntryEnumeration dexEntries = dexfile.entries();while (dexEntries.hasMoreElements()) {// 如果是对
2021-12-08 17:37:43 339
原创 Java面试题(JVM、并发,android编程权威指南第4版
Q:JVM、Dalvik、ART的区别?什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。什么是AR
2021-12-07 14:10:57 563
原创 Java的Url编码和解码,android开发简历
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/–>import java.net.URLDecoder;import java.net.URLEncoder;public class URLDecoderTest {public static void main(String[] args) throws Exception {//将applica
2021-12-07 14:06:46 160
原创 Java的Url编码和解码(1),kotlin插件
http://www.CodeHighlighter.com/–>java.net.URLDecoder.decode(String s,String enc);将application/x-www-form-urlencoded字符串转换成普通字符串。java.net.URLEncoder.decode(String s,String enc);将普通字符串转换成application/x-www-form-urlencoded字符串代码Code highlighting produce
2021-12-07 14:04:49 930
原创 java回调函数机制,android混合开发弊端
一、 概述软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调、异步调用 。**同步调用:**一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;**回调:**一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;**异步调用:**一种类似消息或事件的机制,解决了同步阻塞的问题,它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密:使用回
2021-12-07 14:01:05 347
原创 java中对象的引用(强引用、软引用,真正带你搞懂RecyclerView的缓存机制
如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收,JAVA虚拟机就会把这个软引用加入到与之关联的引用队列中。3.弱引用(WeakReference)如果一个对象只具有弱引用,那就类似于可有可物的生活用品。弱引用与软引用的区别在于
2021-12-07 13:59:36 98
原创 java1,handler机制
int a = 3;Collection c = new ArrayList();c.add(a);//自动转换成Integer.Integer b = new Integer(2);c.add(b + 2);这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.**4.枚举(Enums)**JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字enmu. 我们可以这样来定义一个枚举类型。public enum Color{R
2021-12-07 13:57:56 237
原创 phonegap照相插件的使用,美团点评APP在移动网络性能优化的实践
接下来给大家演示:目测大家都是已经安装好环境的,如果没有搭好环境 可以查看我的phonegap配置文章 点击打开链接调用系统的API 官方文档地址 点击打开链接<1> 在控制台 创建一个phonegap工程 命令如下phonegap create my-appcd my-appphonegap run android<2> 我们从命令行进入 到工程目录下的
2021-12-06 05:24:33 84
原创 一个可以方便调试响应数据的控件(Android版本),okhttp读取信息kotlin
" ]\n" +“}”)}}核心代码大部分代码都有中英文对应的注释,可能有些地方翻译地不太好,请各位见谅哈。上面也提到了,该控件是以RecyclerView为基础,涉及到JsonItemView、JsonViewAdapter和JsonRecyclerView三个类。JSONItemView该类用于展示每一条数据对应的视图,用到的布局文件是item_json_view.xml,它继承LinearLayout,有四个关键的变量,代码如下所示:// JSONItemView.ktpr
2021-12-05 20:02:23 109
原创 一个例子学会使用Jetpack Compose Modifier,kotlin入门到精通
modifier = Modifier.size(40.dp),bitmap = imageResource(id = R.drawable.miku),contentDescription = null, // decorative)Column(modifier = Modifier.weight(1f)) {Text(text = name, maxLines = 1)Text(text = desc, maxLines = 1)}Text(“Follow”, Modifier.pad
2021-12-05 20:00:26 457
原创 Android面试官:Window连环十二问你顶得住吗?,kotlin反编译apk
还是接着刚才的btn例子,如果要修改btn的位置,使用updateViewLayout即可,然后在ontouch方法中传入移动的坐标即可。btn.setOnTouchListener { v, event ->val index = event.findPointerIndex(0)when (event.action) {ACTION_MOVE -> {windowParams.x = event.getRawX(index).toInt()windowParams.y = eve
2021-12-04 15:50:20 1176
原创 Dart4,2021字节跳动春招技术面试题
•Dart中可以直接打印list包括list的元素,List也是对象。java中直接打印list结果是地址值•Dart中List的下标索引和《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享java一样从0开始•和java一样支持泛型。•有增删改查,支持倒序,自带排序、洗牌,可使用+将两个List合并list.dartvoid main(){/// --------
2021-12-04 01:45:30 260
原创 C语言之volatile用法(二十一),2021最新Android面试笔试题目分享
int main (void){int i = 10;int a = i; //优化int b = i;printf (“i = %d\n”, b);return 0;}//编译优化、查看汇编gcc -O2 -S test.ccat test.s.file “test.c”.section .rodata.str1.1,“aMS”,@progbits,1.LC0:.string &nb
2021-12-04 01:43:25 175
原创 CSDN使用:使用CSDN的MarkDown编辑器,以及MarkDown编辑器的帮助文档
有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做 Ctrl + YMarkdown及扩展Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]使用简单的符号标识不同的标题,将某些文字标记为粗体或者_斜体_,创建一个链接等,详细语法参考帮助?。本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考G..
2021-12-04 01:41:19 133
原创 Cocos2d-x 3,kotlin命令行工具下载
label:setAnchorPoint(cc.p(0.5, 0.5))– 设置标签的位置label:setPosition( cc.p(VisibleRect:center().x, VisibleRect:top().y - 50) )– 创建一个精灵,这里是个球local ball = cc.Sprite:create(“Images/ball.png”)– 设置球的位置ball:setPosition(cc.p(VisibleRect:center().x, VisibleRect:ce
2021-12-04 01:39:22 151
原创 ARouter的源码梳理,androidwebview停用
startActivity(requestCode, currentContext, intent, postcard, callback);}});break;case PROVIDER:return postcard.getProvider();case BOARDCAST:case CONTENT_PROVIDER:case FRAGMENT:Class fragmentMeta = postcard.getDestination();Object instance = fragm
2021-12-04 01:35:38 210
原创 apt-get apt-cache,kotlinlambda表达式成员引用
Replaces: mail-transport-agentProvides:default-mta, mail-transport-agent…示例:4 列出包的依赖linuxidc@localhost:~$ apt-cache depends postfixpostfixDepends: libc6Depends: libdb5.3Depends: libsasl2-2Depends: ..
2021-12-04 01:34:10 90
原创 APP软件测试总结,android输入法下载
4)安装后没有生成多余的目录结构和文件。2.卸载1)测试系统直接卸载程序是否有提示信息。2)测试卸载后文件是否全部删除所有的安装文件夹。3)卸载是否支持取消功能,单击取消后软件卸载的情况。4)系统直接卸载UI测试,是否有卸载状态进度条提示。三、UI测试1)测试用户界面(如菜单、对话框、窗口和其他控件)布局、风格是否满足要求、文字是否正确、页面是否美观、文字、图片组合是否完美、操作是否友好等。2)UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合
2021-12-04 01:32:30 104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人