自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 资源 (4)
  • 收藏
  • 关注

原创 Kotlin 中的 suspend(挂起函数)

suspend(译为「挂起」)是 Kotlin 中用于标记「可暂停执行」函数的关键字允许函数在执行过程中暂时挂起(释放线程资源),等待某个耗时操作(如网络请求、数据库读写、文件IO)完成后,再恢复执行后续代码,且整个过程不会阻塞当前线程。简单来说,挂起函数就是「能暂停、能恢复、不阻塞」的特殊函数。suspend标记可暂停、可恢复的挂起函数,核心是「不阻塞线程」;挂起 ≠ 阻塞,挂起时释放线程资源,阻塞时占用线程资源;约束:不能直接在普通函数中调用,仅可在其他挂起函数、协程体中使用;

2025-12-30 11:24:26 758

原创 Kotlin 中 `@JvmField` 注解的使用

@JvmField是Kotlin提供的JVM互操作注解,它使Kotlin属性在编译为Java字节码时直接生成公共字段,而非默认的私有字段+getter/setter封装。该注解仅适用于val/var属性,不支持属性委托(除lateinit外),val属性会编译为final字段。主要用途是提升Kotlin与Java的互操作性,让Java代码可以直接访问Kotlin属性而无需调用getter方法,同时也适用于需要反射访问字段或与依赖公共字段注入的旧Java框架集成的场景。

2025-12-30 11:09:38 394

原创 Flutter鸿蒙0-1开发-flutter create <prjn>

本文介绍了在Mac上通过命令行创建Flutter项目的步骤。主要内容包括:1) 创建前需确保Flutter SDK已安装并配置好环境变量;2) 使用flutter create命令创建项目,注意项目命名规范(仅小写字母、数字和下划线);3) 可指定目标平台和组织名称;4) 创建后进入项目目录执行flutter run运行项目。文章还提醒开发者使用flutter version和flutter doctor检查环境配置,并特别强调项目命名对Java开发者的注意事项。

2025-12-22 23:22:08 462

原创 Flutter鸿蒙0-1开发-工具环境篇

本文介绍了配置Flutter开发环境的完整流程。首先需从官网下载DevEco Studio IDE并升级至最新稳定版本,然后通过Git克隆Flutter SDK仓库。重点讲解了环境变量配置方法,包括确定系统环境变量存储文件(.bash_profile或.zshrc),设置国内镜像源、Flutter路径、OpenHarmony SDK路径等关键配置项。配置完成后需执行source命令使环境变量生效,并通过flutter doctor -v命令验证配置是否正确。文章最后提醒注意事项:Flutter路径需根据实际

2025-12-22 20:44:48 1097

原创 HBuildX运行到微小程序问题

18:03:04.853 [微信小程序开发者工具] For more details see: https://developers.weixin.qq.com/miniprogram/en/dev/devtools/cli.html。18:03:04.856 [微信小程序开发者工具] 详细信息: https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html。18:03:04.849 [微信小程序开发者工具]

2023-07-08 18:12:14 2104

原创 vue的故事开端

创建vue create projectname(npm init vue@latest创建的有点问题)安装node、npm、vue、vscode。运行yarn serve。

2023-06-17 17:38:52 237 1

原创 Android Activity中使用Fragment

至于,Activity和Fragment的生命周期再次不描述了,google、百度一大把

2016-10-15 09:40:32 1943

原创 Androi与html中的JavaScript之间方法相互调用

对于这个问题,很多人都知道怎么一回事。Android调用Html中JS的方法,JS如何调用Android中的方法?先来说说,WebView、WebViewClient、WebChromeClient。一、简介1、WebView 一说到WebView可能,很多人会说,其有很多的弊端,再次不说。至于,它是干什么的控件(略)。2、WebViewClientWebVie

2016-09-13 16:14:27 863

原创 关于老项目增加功能的问题

由于上周项目中没安排什么事情,而另外一个项目中有个项目,一个非常老的项目E3S,需要增加新的功能,人力不够,所以被安排过来搞几天。对于,一个对那个老项目什么业务逻辑不懂的人来说,是一件很痛苦的事情。整整花了两天的时间去看代码。为什么说这个项目很老?第一,时间很久了,13年底;第二,代码完全没有被整理过,一个字乱;第三,没有使用现在的最新的技术,开发工具。知道代码的我,从SVN将代码导入到Ecl

2016-09-13 14:54:05 1845

原创 Android Studio插件开发利器Exynap

Exynap在Android周报中看到的,第一眼看不知是啥。看着看着,感觉不觉明历!简直就是Android Studio的一大帮凶,让Android Studio更加方便、简洁、命令化的编程。快捷键(Ctrl + Shift + D)——先安装插件Exynap。

2016-09-13 12:39:53 3162

原创 关于数据格式化代码整理

import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/** * Created by R.W on 2016/3/1. */public class SD extends FD { double f = 111231.5585; publi

2016-03-01 15:59:49 765

原创 SlidingUpPanel的使用

下载地址:https://github.com/umano/AndroidSlidingUpPanel最近项目中使用过这种控件,调用的方法expandPanel(float offset);该方法主要设置打开的程度。以此,在背景处并不能响应点击事件,从而使得这个控件收拢,看了看这个View的事件处理方法中,从而获知,其中有一个方法:private boolean isDragVie

2014-06-28 18:37:16 2605 1

转载 Android布局中的include、merge 、ViewStub

在布局优化中,Androi的官方提到了这三种布局include、merge 、ViewStub。

2014-05-21 15:47:04 759

原创 关于方法的调用情况

对于方法的执行次数,可以再使用类的成员变狼

2014-05-20 11:30:38 675

转载 Android网络通信的方式

如今,手机应用渗透到各行各业,数量难以计数,其中大多数应用都会使用到网络,与服务器的交互势不可挡,那么android当中访问网络有哪些方式呢?现在总结了六种方式:(1)针对TCP/IP的Socket、ServerSocket(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随

2014-04-03 17:41:33 980

转载 java四种代码块

出自http://my.oschina.net/building/blog/99213

2014-04-03 17:20:26 1807

转载 Android抽象布局——include、merge 、ViewStub

在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:[html] view plaincopyprint?LinearLayout xmlns:android="h

2014-02-12 12:28:32 782

转载 Java中的关键字volidate大集合

我们知道,在 Java 中设置变量值的操作,除了 long 和 double 类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在 JVM 1.2 之前, Java 的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着 JVM 的成熟和优化,现在在多线程环境下volatile 关键字的使用变得非常重要。在当前的 Java 内存模型下,线程可以把变量保

2013-12-26 12:59:54 5150

原创 有关在Eclipse上安装插件WindowBuilder以及如何使用

其实在Eclipse上安装插件很简单,主要有两种方式:第一种就是在线安装插件;第二种就是,采取离线方式,也就是先将插件压缩包下载下来。推荐使用第二种,因为到时候你可以自己随时删除这个插件。首先,此时此刻Eclipse是可以工作的状态,也即是打开了Eclipse。Google一下关于Java GUI插件,会发现比较多的插件,但是在这里推荐使用WindowBuilder插件,我记得,曾经Windo

2013-12-21 16:02:52 73840

原创 AIDL文件中使用实现接口Parcelable的类

在官方文档中说明了,在AIDL文件中可以使用:AIDL使用简单的语法来声明接口,描述其方法以及方法的参数和返回值。这些参数和返回值可以是任何类型,甚至是其他AIDL生成的接口。    其中对于Java编程语言的基本数据类型 (int, long, char, boolean等),String和CharSequence,集合接口类型List和Map,不需要import 语句。

2013-12-19 20:48:57 3976

转载 Ubuntu下的apt以及dpkg命令

Ubuntu默认不能直接用root帐户登录,必须从第一个创建的用户(既安装时创建的那个用户)通过su或sudo来获得root权限。在 Ubuntu中对系统进行操作很多时候都要使用这个命令,由此可见对于新来说很有必要来认识这个命令。这或许不太方便,但这样增加了安全性,避免用户由于 误操作而损坏系统。sudo格式:sudo [其它命令]sudo既为Super user

2013-12-16 09:55:02 1371

转载 查看Linux内核版本

方法一: 命令: uname -a作用: 查看系统内核版本号及系统名称方法二:命令: cat /proc/version作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明:  /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的

2013-12-16 09:51:20 1025

转载 Service Manager分析

Android系统Binder机制的总管是Service Manager,所有的Server(System Server)都需要向他注册,应用程序需要向其查询相应的服务。可见其作用是多么的重要,那么我们这里就要重点介绍一下这个。这里以java层加入ServiceManager及getService为数据流分析一下。复习一下典型的Binder模式,有利于后面的理解:1、客户端通过

2013-12-06 15:33:52 1094

转载 ServiceManager和IBinder的扮演角色

l     ServiceManager的角色:它也是一項Core Service    ServiceManager本身也是一個Native Service,而且是天字第一號的核心服務(Core Service)。在系統啟動時(即執行init.rc時),就會立即啟動它,並登記(Register)成為Binder Driver裡的第一號Native Service。如下圖所示: 

2013-12-06 15:32:54 1173

转载 Binder in Java

Android在Native层实现了进程间的Binder通信,但是上层应用程序的开发及Framework的实现都是Java,用Java层再实现一次肯定是不合理的,Java可以通过JNI调用Native Code,所以通过JNI复用Binder在Native层的实现就是一个顺理成章的事情。注册Service  在Init进程的init2阶段,系统启动了ServerThread,在Se

2013-12-06 15:31:39 800

原创 在组件中获取服务对象的大致步骤

我们可以在Activity、Service中获取到服务的管理对象,从而可以让服务工作,完成客户端的请求。在aidl文件编译生成的java文件中,有关服务管理对象(XXManager)、服务接口(IXXManager)、根(IXXManager.Stub)、服务(XXManagerService)、服务代理(IXXManager.Stub.Proxy)之间的大致类关系如图:具体可以看下a

2013-12-03 11:18:27 1896

原创 解析Activity中的onCreate方法

我们在写一个自己的Activity的时候需要注意:1、都必须extends Activity(或者其子类);2、必须在方法onCreate中存在一条这样的语句:super.onCreate(也就是调用Activity的onCreate方法),对于super.onCreate方法放的位置要求不是很高,只要被调用了就可以了,super.onCreate主要是加载一些组件。如下面:imp

2013-12-02 10:16:21 13201

转载 UML Tools for Ubuntu

Unified Modelling Language (UML) is a modelling languages. It is typically used in the design phase of object oriented software development process, to express the thought in graphical representation,

2013-11-28 10:31:45 6622

转载 Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件

这么多年来,数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效 的节约磁盘空间。某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目 录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面常用的压

2013-11-26 18:42:45 966

转载 Android源码学习—系统启动过程

Android的启动过程可以分为两个阶段,第一阶段是Linux的启动,第二阶段才是Android的启动,下面我们分别来了解一下具体的过程。首先是Linux启动,这一部分我想就可以略过了,无非是Linux的Bootloader,Kernel,Driver之类的,在这里唯一要提到的就是ServiceManager,即服务管理器,这个是做为一个进程在Android加载之前就被启动了,我们可以从ini

2013-11-25 10:36:28 864

转载 Android系统启动过程

Android系统启动过程首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰)  Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址)        下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解

2013-11-25 10:03:46 805

转载 Android系统启动流程 -- android

Android的启动过程是从进程init开始的,所以它是后续所有进程的祖先进程。一、init进程源码位于system/core/init目录。主要做了以下事情:1.     重新设置子进程终止时信号SIGCHLD的处理函数。act.sa_handler = sigchld_handler;  //调用了wait函数等待子进程退出。act.sa_flags =

2013-11-25 09:59:55 1461

转载 Android开机启动流程初探

l  Init进程Android系统在启动时首先会启动Linux系统,引导加载Linux Kernel并启动init进程。Init进程是一个由内核启动的用户级进程,是Android系统的第一个进程。该进程的相关代码在platform\system\core\init\init.c。在main函数中,有如下代码:open_devnull_stdio();log_init();

2013-11-25 09:57:57 802

转载 Android消息队列模型——Thread,Handler,Looper,Massage Queue

Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列(Message Queue)和一个消息循环(Looper)。Android中除了UI线程(主线程),创建的工作线程默认是没有消息循环和消息队列的。如果想让该线程具有消息队列和消息循环,并具有消息处理机制,就需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Loope

2013-11-23 10:02:50 1239

转载 深入理解Android消息处理系统——Looper、Handler、Thread

熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环

2013-11-23 10:01:50 808

转载 在64Ubuntu如何安装ia32支持32-bit---Ubuntu apt-get install ia32 for 32-bit on 64-bit

To install 32-bit libraries on a 64-bit linux systemInstall: $ apt-get install ia32-libsTo install 32-bit libraries for developmentInstall: $ apt-get install lib32gcc1 libc6-i386 lib3

2013-11-20 11:36:56 3393

原创 Ubuntu中文输入法ibus

See:http://wiki.ubuntu.org.cn/IBus

2013-11-19 11:56:19 1303

转载 UNIX / Linux: Set your PATH Variable Using set or export Command

How do I add a new path to $PATH variable under Linux and UNIX like operating system? What is my path, and how do I set or modify it using csh/tcsh or bash/ksh/sh shell?The PATH is an environment

2013-11-18 16:42:32 1492

转载 UML建模之时序图(Sequence Diagram)

一、时序图简介(Brief introduction)       时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。

2013-11-18 10:17:46 1371

转载 UML建模之类图(Class Diagram,UML图)

一、简介类是对象的集合,展示了对象的结构以及与系统的交互行为。类主要有属性(Attribute)和方法(Method)构成,属性代表对象的状态,如果属性被保存到数据库,此称之为“持久化”;方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。       类图展示了系统的逻辑结构,类和接口的关系。二、类的构成类主要有属性和方法构成。比如商品属性有

2013-11-18 10:14:09 1689

web复习资料

web复习资料WEB复习题.doc

2012-11-29

自定义View和自定义Button

很简单,学习自定义的View,还有自定义的Button,其实也就是一个View。

2013-08-20

AIDL服务端与客户端

AIDL服务端与客户端代码在此,方便学习,参考。根据Google官方提供的文档实现的。

2013-10-18

仿造360桌面加速效果

仿造360桌面加速效果,使用clip drawable以及线程实现。

2013-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除