- 博客(411)
- 资源 (33)
- 收藏
- 关注

原创 鸿蒙 Next 快速开发备忘
1. 文本末尾显示....textOverflow({overflow:TextOverflow.Ellipsis}).ellipsisMode(EllipsisMode.END)
2024-05-10 14:13:44
276

原创 鸿蒙 Next 开发问题备忘
1,鸿蒙DevEco Studio 机测试Failure[INSTALL_FAILED_APP_SOURCE_NOT_TRUSTED]勾选自动签名,然后自动跳转登录华为网站,登录即可。
2024-04-28 14:31:37
740

原创 Android快速开发教程备忘录
Android DataBinding 从入门到进阶https://www.jianshu.com/p/bd9016418af2
2020-11-11 22:26:49
483

原创 Android开发问题备忘录
Android 使用 databinding:view must have a tag这个坑是databinding编译时的问题,将xml布局文件重命名之后,就解决了如:activity_main.xml 改为activity_main_2.xml
2020-10-20 15:21:17
899

原创 Android知识点备忘录
Android Fragment onCreat() 方法是在Activity onCreat 时候调用。onCreateView 调用多次。
2020-10-13 09:42:09
212

原创 Git使用教程
配置用户信息当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com再次强调,如果使用了 –glo
2016-12-29 10:15:11
721

原创 使用Gradle发布项目到JCenter仓库
这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛。JCenter现在是Android Studio中repositories的默认节点了,之前是Maven的,不过JCenter是兼容Maven的,所以放心使用。步骤基本是按Publishing Gradle Android Library to jCenter Repository这里来的
2015-04-18 19:07:53
2359
1

原创 Android学习——查看apk签名 和 keystore 的信息
1、查看 keystore $ keytool -list -keystore debug.keystore结果Keystore type: JKSKeystore provider: SUNYour keystore contains 1 entryandroiddebugkey, Mar 21, 2013, PrivateKeyEntry,
2014-01-23 11:52:53
32728
原创 程序员的自我修养 - 第一章 温故而知新
线程(Thread),也被称为轻量级进程,是程序执行的基本单位。下图表示进程和线程的关系。在一个进程中,可以有多个线程,他们共享进程间的代码段,数据段,堆,进程空间,打开文件对象(这几个东西,其实就是程序加载到内存中的数据结构)而每个线程,自身内部,有独占的寄存器,栈等。
2025-03-25 12:42:40
980
原创 Android LiveData 的 `setValue` 与 `postValue` 区别详解
LiveData 默认保存最后一次值,新注册的观察者会立即收到该值。在短时间内多次调用时,中间值可能被覆盖,仅最后一次生效;:如动画进度更新,需确保每个状态都被观察者接收。每次调用均会触发更新,无数据丢失风险。:如网络请求、数据库查询完成后更新数据。锁保证线程安全,仅第一次调用会提交。:如传感器数据,只需显示最新状态。方法,遍历观察者列表触发回调。:如点击按钮后直接刷新 UI。,立即触发所有活跃观察者的。在主线程队列中延迟执行)。• 避免在子线程频繁调用。,可能导致主线程任务堆积。,但主线程执行前多次。
2025-03-23 23:41:38
160
原创 Android一个APP里面最少有几个线程
Android应用启动时,默认会创建一个进程,该进程中最少包含负责处理用户交互、UI更新等核心操作,所有与界面相关的逻辑必须在此线程执行。若在此线程执行耗时操作(如网络请求),会导致界面卡顿甚至触发ANR(应用无响应)。当对象重写了finalize()方法时,该线程负责将这些对象放入队列并调用其finalize()方法,完成资源释放后再由GC回收。监控的执行效率。如果finalize()方法执行超时(默认10秒),此线程会触发虚拟机退出以防止应用长时间阻塞。
2025-03-23 21:19:40
361
原创 Jetpack Compose — 入门实践
仔细想一下,这样的设计是否更合理,Button 本身的作用就是提供点击时间,Text 提供文本作用的。视图树一旦生成便不可随意改变,视图树的刷新依靠 Composable 函数的反复执行来实现,当需要显示的数据发生变化时,Composable 基于新的参数再次执行,更新底层的视图树。这种多数据源在状态变化的情况下不容易跟踪,且状态源过度分散,会增加状态同步的工作量,比如 EditText 内部持有一个 mText 状态,其它组件需要监听它的状态变化,同时,它还有可能需要监听其它组件的状态变化。
2025-03-07 18:36:01
182
原创 Android 字体大小自动处理 AppCompactTextView 和 自定义 TextView
TextView属性背后容易出现绘制冲突,动态设置参数以最后的配置为准,会影响之前配置好的布局,产生问题;对于支持API 26以上的 autoSizeTextType 属性,更容易产生布局冲突,导致onDraw结束后所表现的状态出现异常;采用自定义View并重写绘制流程的方法较为稳定,且不会因为多次重建导致问题。
2025-02-25 13:36:03
114
原创 六大平台玩转满血版 DeepSeek R1 ,免费送 token
模型入口:https://console.bce.baidu.com/qianfan/modelcenter/model/buildIn/list。模型入口:https://console.cloud.tencent.com/tione/v2/aimarket。API Key 设置:https://console.cloud.tencent.com/lkeap。2、点击进入 API Key 管理页面后,可以创建和查看 API Key。模型入口:https://console.volcengine.com/
2025-02-19 19:27:50
385
原创 极简的 DeepSeek 本地部署教程,有手就会
Deepseek V3:属于通用型大语言模型,侧重于可扩展性和高效处理,便于在自然语言处理任务中实现高效、灵活应用。Deepseek R1:是推理优先的模型,侧重于处理复杂的推理任务,重点在于分析深度逻辑和解决问题。当然如果你额连 ollama,模型也不想下载,可以直接用三方的Api ,比如硅基流动。当然还有很多的三方,可以自行发挥!由于电脑配置,这次我使用的 7B 版本。下载 DeepSeek R1 模型。注册之后会赠送14元,在余额这里。之后 创建 API key。
2025-02-13 19:03:14
444
原创 鸿蒙Next :Tabs 添加分割线
用于设置区分TabBar和TabContent的分割线样式设置分割线样式,默认不显示分割线。DividerStyle: 分割线的样式;null: 不显示分割线。
2025-02-11 10:36:48
71
原创 鸿蒙Next-支付宝SDK接入教程
App适配鸿蒙Next,开始做支付功能了,目前来说只有支付宝支持鸿蒙Next,微信还没上架,但是支付宝官方的文档跟Demo都很老,下载官方的Demo用最新版的DevEco-Studio导入都不成功。
2025-02-11 10:30:50
176
原创 曲线解决 DeepSeek 无法充值的问题,附白嫖指南
模型可以输入:deepseek-ai/DeepSeek-V3。当然你可以按照这个思路,配置其他平台来体验DeepSeek!让我们踏着AI浪潮,跟随DeepSeek ,探索未至之境!注册之后会赠送14元,在余额这里。之后 创建 API key。
2025-02-08 11:53:29
2996
原创 Compose 最佳实践
Compose业务上能做的优化大体上就是这些了。总之我们就是我们要保持组件的颗粒度尽可能的小,容易变动的要独立出来,非常稳定的也要独立出来,尽量使用Immutable的数据结构。如此之后,Compose的流畅度还是非常不错的。如果还觉得卡,那多半是因为你使用的是Debug包,Compose会在Debug包加很多调试信息,会很影响其流畅度的。切换到Release包,可能丝滑感就出来了。针对最后这一段,目前我是没有发现 Debug 卡顿情况。
2025-01-17 14:12:10
35
原创 如何在低版本 macOS 安装合适的 Xcode
地址:https://developer.apple.com/download/all/?这就是我们对应的macos系统需要安装的版本号。
2025-01-12 15:34:43
584
2
原创 Sui Move:基本概览一
Move代码被组织成模块,每个模块类似于其他区块链上的单个智能合约。这种模块化设计在Sui中得到了强调,旨在促使开发者保持模块小巧且分布在不同文件中,同时坚持清晰的数据结构和代码规范。这样做既方便应用程序集成,也便于用户理解。
2025-01-12 13:30:56
1097
原创 Sui Move:父子对象
独有对象跟嵌套对象虽然都是一个对象属于另一个对象,但大相径庭,首先被嵌套的对象必须有store ability,而独有对象不用;我们在前面章节讲过,对象的创建和修改,也都只能在定义它的模块中实现,所以在父对象模块中使用public_receive接收并修改子对象就只能调用子对象修改字段的方法,而不是直接修改。当一个对象被转交给另一个对象的时候,这两个对象就形成了父子关系,为了方便下面我统一将被转交的对象称之为子对象,作为owner的另一个对象称之为父对象。
2025-01-11 09:15:00
647
原创 Sui Move:集合
这一章我们将讲解如何保存数据的集合。说到数据的集合首先想到的肯定是数组,Move标准库给我们提供了vector模块以支持数组类型。
2025-01-11 08:45:00
1451
原创 Sui Move:动态字段
使用dynamic_filed::add方法生成的Field对象,通过value字段直接嵌套了MobilePhone对象,那这个MobilePhone对象就只能通过Field对象进行访问,修改,删除和转移了。与此不同的是,dynamic_object_field:add对象生成的Field对象值是Notebook对象的ID,并没有嵌套Notebook对象,那就意味着外界依然可以访问Notebook对象。有没有一种方法,可以让对象只嵌套需要的对象,不限名称不限类型,还可以动态的嵌套,动态解除嵌套对象?
2025-01-10 08:30:00
548
原创 Sui Move:Bag和Table - 为动态字段而生
前面我们讲到使用动态字段可以给Person对象动态添加电子设备的例子,因为无法直接获取Person对象的动态字段个数,在删除Person对象之前,具体应该删除多少个动态字段也是不确定的,所以其实特别容易漏删,造成资源浪费。Sui框架基于Bag是一个异构的映射集合,也就是说值是键值对形式,而且每对键值对的类型可以不同。Table也是一个映射集合,但是所有键值对的类型必须一致。这一点从名字也有体现,包(bag)里可以塞任何东西,表格(Table)则只能按条目填写。
2025-01-10 08:15:00
683
原创 Sui Move:四种Ability - Key, Store, Copy, Drop
在前面几章我们一直在说对象的ability,那什么是ability呢?ability直译过来就是数据类型的能力。Ability有四种,分别是基础数据类型和内建的数据类型的ability是默认的,不可修改的。他们默认有copy,drop,store这三种能力。结构体默认没有任何能力,但是我们可以自行设置结构体的能力。下面我主要讲解每种能力的含义和如何设置结构体的能力。无论哪种ability,都是使用。
2025-01-09 22:21:38
869
原创 Sui Move: 最小的存储单元-对象
笔者做了一个小实验,使用transfer在模块内转交有store ability的对象,会触发警告,不影响运行。但不建议这么做。
2025-01-09 22:01:24
896
原创 Android TextView 添加下划线的几种方式
设置为相应的的值,如果是所有的类型都出来就是**android:autoLink="all",方法格式化要放到TextView里的文字 ,与第1种一样,只是是用代码动态设置。当文字中出现URL、E-mail、电话号码等的时候,可以将TextView的。直接让TextView引用字符串资源的name即可。用Spannable或实现它的类,如。将要处理的文字写到一个资源文件,注⚠️: 这种方式真的简单方便!
2025-01-09 11:17:11
758
原创 如何使用 viewModelScope.launch
是一个非常常用的写法,它帮助在ViewModel中启动协程,执行异步任务,并确保在ViewModel销毁时取消协程,防止内存泄漏。在 Android 应用中,常用于执行网络请求、数据库操作等需要异步处理的任务。是的,中的代码可以使用来简化异常处理。是 Kotlin 标准库提供的一个函数,它用于捕获代码块中的异常,并以Result对象的形式返回。这样可以避免显式使用try-catch,使代码更加简洁。你完全可以将中的网络请求部分改造成,这样可以更优雅地处理异常并简化代码。
2024-12-05 17:22:59
346
原创 对比 LiveData 和 Flow 的实现方式
前一段忙完了鸿蒙,现在又开始 Android 开发了。由于之前公司都是都是偏传统开发方式,基本都是 Java 开发 Android 那一套。现在开始学习现代 Android 开发了。
2024-12-05 16:39:45
463
原创 如何通过 ADB 安装 xapk
这个方式通过adb install-multiple命令直接一键安装了,这个确实方便,亲测也能成功安装,但似乎只支持已签名的包,暂未验证(常见的应用应该都有签名的吧)。xapk和apks并无本质不同,都是压缩包,但xapk是apkpure魔改版的,通过manifest.json来记录安装配置,查看其内容如下图。一开始用这个命令发现不行, adb install -r *.apk 后开看到有 install-multiple ,安装成功!这位大佬的方式步骤较为繁琐,不过兼容性应该较好,亲测成功安装。
2024-11-29 17:49:43
960
原创 Sui 入门教程:Hello Move
Sui 区块浏览器,可以查看链上的任何记录,只要提供地址 or ID。sui 1.37.1-homebrew // 安装成功。首次安装好Sui ,还需进行一下操作。我们需要看下当前环境。下面直接开始第一个 sui 项目hello move。发布成功之后,就可以在 Sui 区块链浏览器查看。本文章之介绍 MacOS 环境。至此,第一个项目编写完成。更多内容直接查看官方文档。安装move 语言插件。
2024-11-12 21:32:03
539
原创 Android 老项目适配 Compose 混合开发
在compose中,每个可组合函数调用直至渲染完成,称之为重组通过异步上树虽然带来了性能的提升,但是管理方面变得困难,所以compose规定,每个可组合函数都是独立运行的存在,可组合函数内部应该仅处理的UI操作,重组的发生的时机并不由我们控制,而是由compose内部自动管理,后续我们可以使用状态来通知compose进行重组。如需更多了解,下面文章看下的文章,看完一遍就基本了解,然后直接就是实战。
2024-11-12 10:44:41
396
原创 鸿蒙 APP 发布上架
网址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/网址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/build - Build Hap(s)/App(s) -Build APP(S) 打包,生成的.app在项目级别的build内。3.就生成了对应的:密钥库文件(.p12)和证书请求文件(.csr)
2024-11-11 09:53:48
371
精益数据分析 Lean Analytics.pdf
2018-06-18
viPlugin_2.9.0 eclipse 插件 附带xx方法
2012-07-11
sqlite developer SqliteDev387.zip sqlite管理工具
2011-12-18
JD-GUI Window下的 jar2java 有图形界面的 ( jd-gui-0.3.3.windows.zip
2011-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人