- 博客(51)
- 资源 (40)
- 收藏
- 关注
原创 Kotlin 流 Flow
挂起函数可以异步地返回一个值,而对于,可以使用流,使用emit(x)发射多个值,来收集值。默认 流是冷的,只有收集时才会执行。
2024-09-03 22:58:40
1101
3
原创 Kotlin 中缀函数(infix)
中缀函数,比如 10 shl 2 位左移操作shl就是 中缀函数,等同于10.shl(2)。类成员函数 或 扩展函数,增加infix修饰即可。
2024-08-17 22:17:42
533
原创 Kotlin 值类(Value Class)
在 Java 中,像IntegerDouble等都是 包装类,都需要创建对象 装箱 数值。很显然 创建对象是 消耗额外内存的,而 对于优化这种问题,Kotlin 引入了 值类,尽量避免装箱和脱箱。
2024-08-10 19:09:12
799
原创 IDEA 配置和缓存目录 设置
IDEA系列产品,一般会在用户目录创建和一般占用 少则 几百M,多则 几个G。以下总结了下更改配置目录的方法。
2024-02-02 09:58:40
7517
1
原创 Kotlin协程的JVM实现源码分析(下)
根据是否保存切换调用栈,在代码上的区别是:是否可在普通函数里调用,并暂停其执行。Kotlin协程,必须在挂起函数中调用和恢复,属于无栈协程
2024-01-21 20:47:54
1261
原创 Kotlin 尾递归函数
函数式编程中,重要的概念 尾递归。当一个函数,在函数最后调用 自身,称为,是一种特殊的递归函数。在JVM中,每次方法调用时,都会产生新的,消耗栈内存。当 调用层级过多时,就会产生错误。可以避免的风险。原理是:通过编译器优化 为或跳转,代替 原来递归调用。Kotlin 使用tailrec声明尾递归函数。
2024-01-21 19:30:00
774
原创 Kotlin 解构声明
在一些像Python的高级语言中,支持 多返回值。而在 Kotlin 中,虽然不直接支持,但有类似的解构对象功能,叫做解构声明。
2024-01-20 19:19:49
780
原创 Kotlin 类型别名
Kotlin 提供 给 已存在的类型 取 别名的功能,称为 类型别名(Type Aliases)。 对 简化 长类名 和 泛型类型名 很有用
2024-01-19 18:04:06
533
原创 Kotlin协程的JVM实现源码分析(上)
本文从协程的启动launch源码入手分析,协程JVM实现分为两篇: 协程启动和执行源码分析、无栈协程 和 Continuation
2024-01-18 14:34:17
773
原创 Kotlin 内联函数
内联函数 inline 通过把 函数的代码 直接插入 调用处, 而不是 调用函数 和 创建lambda函数类和对象,可以避免开销。
2024-01-14 20:59:14
1202
原创 Kotlin 函数式接口
只有一个抽象方法的接口,称为 函数式接口 functional interface,也叫做 Single Abstract Method(SAM) interface。
2024-01-09 22:40:26
870
原创 Android WebView 响应缓存 笔记
在 Android开发中,经常用到 WebView 进行 Hybrid 模式开发,而 缓存是 常见的优化方式。第1种方式,时间 格式复杂会难解析 和 分布式环境时间不统一,代替的方案是 优先使用。存在 时间格式复杂 和 系统时钟修改导致问题,推荐使用。,非条件请求,可以确保 从服务端响应 200,而不是。不使用缓存,也不验证,重新从服务器获取资源。时,网络请求 重新获取。不判断 响应缓存状态,直接 验证流程。的效果相同,DevTools可看。表示 不使用存储的响应,发送。2. Expires,指定。
2023-12-13 18:35:24
1482
原创 创建Gradle插件记录
文档:https://docs.gradle.org/current/userguide/plugins.html#sec:old_plugin_application。, 表示 不应用插件到 根项目。目的是 提前解析 插件,保持一样的版本。在 多项目工程中,对于 根项目(rootProject)可以 利用。命名发布的Artifact,可以只用 插件ID,来。新创建项目,默认在 build.gradle 中,脚本块,添加到 脚本的classpath中。的方式处理目录下项目。以 插件id 为名的。
2023-11-23 20:54:51
172
原创 MavenCentral库发布记录
最近发布了 Android 路由库,支持 AGP8、ActivityResult启动等特性。把提交到 Maven Central 过程记录一下。
2023-09-01 12:14:55
692
原创 SDK命令行工具配置
SDK命令行工具配置 最早的Android SDK工具包,包含一些GUI的工具。 而在一些场景(如打包)只需要命令行工具时,下载 command-line tools 即可
2023-07-28 15:44:14
1184
原创 FragmentContainerView和导航
替代FrameLayout作为Fragment的容器。 解决了FrameLayout在Fragment过渡动画 View显示次序问题,另外支持导航功能。
2023-07-21 11:28:12
1083
原创 ARouter There is no route match the path 原因
ARouter引入失败 There is no route match the path 原因
2022-11-23 17:02:38
1044
原创 Android实现IOS样式的Dialog
Cupertino DialogIOS样式的Dialog包括: AlertDialog, ActionSheetDialog源码地址:https://github.com/wangmingshuo/CupertinoDialog效果使用方法1.添加依赖添加仓库到根build.gradle文件及库依赖allprojects { repositories {...
2019-11-04 14:36:16
562
原创 Delphi延时
// 高精度的延时,精确到Ms , 100ms以内采用,或要求误差极小// 删除Application.ProcessMessages 影响精度procedure DelayMsEx(Ms: LongWord);var iFreq, iStartCounter, iEndCounter: Int64;begin QueryPerformanceFrequency(iFreq);
2013-12-22 17:46:22
1829
原创 Delphi 设置窗体无标题栏和边框
只需要在窗体的创建时,添加如下代码procedure TMainForm.FormCreate(Sender: TObject);begin SetWindowLong(handle, gwl_style, getwindowlong(handle, gwl_style) xor ws_caption); hide; show;end;
2013-05-16 16:07:16
3516
原创 Delphi 防止程序多次运行
program Project1;uses Forms, Windows, Unit1 in 'Unit1.pas' {Form1};Var hMutex : HWND; Ret : Integer;{$R *.res}begin Application.Initialize; Application.Title := 'test'; hMutex :
2013-05-10 11:07:46
1166
原创 Delphi 简单的软件注册Demo
procedure TMainForm.FormCreate(Sender: TObject);var MyReg : TRegistry; InsDate, LastUseDate, TryDate : TDateTime; Total : PAnsiChar; TotalStr : String;begin MyReg := TRegistry.Create; My
2013-05-09 09:57:24
1492
转载 Delphi 对 Excel 的操作
1.往Excel中插入图片 用MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); 可以放图片varExcelApp,MyWorkBook,MsExcelWorkSheet,Temple1:Variant;begin try ExcelApp:=CreateOle
2013-05-08 11:19:23
1266
转载 判断文件目录,并创建
begin if not FileExists(Edit1.Text) then //if not DirectoryExists(Edit1.Text) then 判断目录是否存在 try begin CreateDir(Edit1.Text); //ForceDirectories(Edit1.Text); 创建目录 end; fin
2013-05-08 11:07:57
840
转载 Android系统文件夹结构解析
来自: 逗逗豆豆 \\system\\app 这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\\data\\文件夹中。下面是详细的介绍: \\system\\app\\AlarmClock.apk 闹钟 \\system\\app\\AlarmClock.odex \\s
2012-12-09 11:06:18
719
原创 Android BaseAdapter类重写模版
BaseAdapter 需要实现的① 继承类的构造方法② public int getCount()③ public Object getItem(int position)④ public long getItemId(int position)⑤ public View getView(int position , View converView , ViewGr
2012-11-28 13:06:36
676
原创 Android 各类Adapter总结
public interfaceAdapter间接子类:ArrayAdapter, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ListAdapter, ResourceCursorAdapter, SimpleAdapter,SimpleCursorAdapter, SpinnerAdapter, Wrap
2012-11-28 12:38:08
1027
转载 Android ListView 的布局图标大小设置
List View IconsIN THIS DOCUMENTAll Android VersionsStructureLight, effects, and shadowsSEE ALSOSupporting Multiple ScreensNew Guides for App Designers!Check out
2012-11-28 12:15:16
3447
转载 Android开发命名规范
Android开发中规范化的命名规则对于后期的维护很重要。因此,一套良好的开发规则是项目开发质量保障必不可少的部分,大家在此集思广益,共同总结。Control NameShutcutTextViewtxtButtonbtnLinkButtonlnkbtnImageButtonimgbtnListBoxlstCheckBoxchk
2012-11-27 19:04:04
1991
原创 Android Saving Files 简介 + 实例源码
首先我们要知道Android 内部存储 (Internel Storage)和 外部存储(External Storage) 的存储的分类。Internel Storage : 通常就是手机自带的内存(Flash),这个存储空间,总是可用的,文件默认保存到这里,卸载应用程序时,与程序相关的文件将一并被自动删除。Externel Storage : 通常就是 SD 内存卡,
2012-11-22 17:14:11
1564
原创 Android 3.0 以下 使用Fragment 实例
首先在 Android 3.0以下使用 Fragment 要导入 android.support.v4 这份包,例外在低版本中使用 Fragment 时,可能出现很多不好解决的错误。一个非常可能的错误是: import 高版本的Fragment包还import 这个支持库。我想你会出现很多不可思意的错误。另一个,是你要使用 FragmentManager 就 主Ac
2012-11-21 14:47:16
3278
原创 Dialog 学习备忘
Dialog 学习备忘package com.eoeAndroid.dialog;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.content.Context;
2012-11-20 13:12:02
686
原创 OpenJTAG下载bootloader 备忘
OpenJTAG下载bootloader准备工作:giveio.inf geiveio.sys oflash.exe 还可能需要FTD2XX.DLL1.把giveio.sys拷贝到c:windows/system32/drivers下2.控制面板里找到,添加硬件,点击下一步 是,我已经连接了此硬件 -下一步 添加新的硬件设备
2012-10-19 00:24:44
810
转载 arm-linux-gcc的命令参数介绍
我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段:1. 预处理(Pre-Processing)2. 编译(Compiling)3. 汇编(Assembling)4. 链接(Link
2012-10-19 00:21:55
750
原创 ADS1.2如何生成BIN文件
首先要设置好C以及C++还有汇编的选项,很重要的一点是要选择目标CPU为920T,然后RO BASE为0x3000000(我用的飞凌科技的TE-2440-II开发板)。然后,在DebugRel Settings-> Linker->ARM fromELF->Output format中指定Plain binary->Output file name,这个是
2012-10-19 00:19:24
2627
InfoNes模拟器源码
2012-02-24
half-nes 模拟器
2012-02-24
nes系统概述
2012-02-24
mynes 国产MRP nes模拟器的源码
2012-02-24
Windows API游戏编程入门到飞进
2011-05-03
手机端NES/FC模拟器游戏机 in java的源代码
2011-02-15
各样java nes模拟器
2011-02-15
MTK改屏工具LCD Select
2011-01-01
刷机MTK平台升级与备份和解锁PPT教程
2011-01-01
MTK斯凯平台(MRP)手机工具
2011-01-01
Git 代码合并 用 merge 还是 rebase ?
2024-01-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人