移动开发
文章平均质量分 59
Andyxdz
Android Developer
展开
-
AndroidNDK JNI中调用java方法
做NDK开发的时候,有需求需要在JNI直接调用和获取Java中的方法和变量,比如回调,系统信息参数等…在JNI中调用Java方法,就需要使用FindClass和这两个类。原创 2022-11-25 16:01:35 · 957 阅读 · 1 评论 -
Android NDK 在Linux下使用mk文件生成SO库
一般我们可以通过在项目中导入C/C++代码,使用AS中的cmake文件编译成so库,但是我这个库里的代码使用在ndk中的stdio库中的文件操作方法总是报错或者编译不通过,于是只能选择在Linux下直接使用ndk编译成so库了。最近有一个Linux下的C语言实现的文件操作库需要移植到Android上,而嵌入式的同事直接扔了一堆源码给到我,我一脸懵逼的同时也只能硬着头皮上了。目录,其中libs目录里就是我们可以直接在Android里调用的so库了。此时找到你的C/C++项目下的源码位置,新建。...原创 2022-08-26 12:02:03 · 1136 阅读 · 0 评论 -
Android 计算View的深度
这次遇到一个需求,需要计算当前View的深度,基本上就是大学时候数据结构里求二叉树的解法,记录一下,理论上也可以用于性能优化和性能监控 private int maxDeep(View view) { //view不会有子view所以就返回0 if (!(view instanceof ViewGroup)) { return 0; } ViewGroup viewGroup = (ViewGroup) view;原创 2022-04-28 15:17:34 · 1801 阅读 · 0 评论 -
AndroidQ 获取、设置锁屏密码
AndroidQ 获取、设置锁屏密码本文中贴出的源码均为AndroidQ(9.0)源码LockPatternUtils说到密码相关的一定要提到LockPatternUtils这个类,它是Android系统中管理锁屏密码的工具类,其中:设置密码:class LockPatternUtils{ /** * 修改密码 * * @param password 原密码,没有设置密码时为null * @param savedPassword 新密码 *原创 2021-11-12 15:47:22 · 3215 阅读 · 2 评论 -
设计模式之设计原则
设计模式之设计原则本文部分节选和引用自如何学好设计,做好架构? 核心思想才是关键感谢作者提供的高质量文章1.单一设计原则单一设计原则很好理解,指一个函数或者一个类再或者一个模块,职责越单一复用性就越强,同时能够降低耦合性。案例:获取本地用户信息,提交到网络fun post() { //创建数据库访问对象DAO val userDao = ... //从本地获取数据 val name = userDao.getName() val age原创 2021-06-02 18:06:21 · 83 阅读 · 0 评论 -
Flutter拖拽控件Draggable
Draggable最近做了一个Flutter项目,其中有一个需求是做出三个可以互相拖拽的任务列表,平时在做Android项目时,拖动的控件基本上都是自定义View来实现的,想看看在Fluter上大家都是怎么实现的,没想到flutter提供了一个非常方便的拖拽控件Draggable。Draggable的构造函数我个人在Flutter开发时,遇到没有见过的控件时,点开源码观察它的构造函数一定是了解它的功能的最优解,我们看Draggable的构造函数: const Draggable({ Key原创 2021-01-26 09:51:12 · 2188 阅读 · 0 评论 -
Android应用启动流程
最近看皇叔的《Android进阶解密》,前三张对Android启动讲的很明白,感觉把以前零散的知识点都穿起来了,推荐大家入手一本,非常值得。Android应用启动流程点击桌面应用图标,Launcher进程将启动Activity(MainActivity)的请求以Binder的方式发送给了AMS。AMS接收到启动请求后,交付ActivityStarter处理Intent和Flag等信息,然后再交给ActivityStackSupervisior/ActivityStack 处理Activity进栈相关原创 2021-01-22 15:48:39 · 241 阅读 · 3 评论 -
Android系统怎么启动
Android系统启动笔记启动电源以及系统启动:当电源按下时引导芯片从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM,然后执行。引导程序BootLoader:BootLoader是在Android系统开始运行前的引导程序,主要用于把系统OS拉起来并运行。Linux内核启动:当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当其完成系统设置时,会先在系统文件中寻找init.rc文件,并启动init进程。init进程启动:初始化和启动属性服务,并且原创 2021-01-22 15:31:15 · 1033 阅读 · 0 评论