- 在Android中,可以覆盖Activity的方法来捕获Activity的生命周期回调。在Flutter中可以通过挂接到WidgetsBinding观察并监听didChangeAppLifecycleState更改事件来监听生命周期事件。 class LifecycleWatcher extends StatefulWidget { @override _Li... 在Android中,可以覆盖Activity的方法来捕获Activity的生命周期回调。在Flutter中可以通过挂接到WidgetsBinding观察并监听didChangeAppLifecycleState更改事件来监听生命周期事件。 class LifecycleWatcher extends StatefulWidget { @override _Li...
- 在Github发布开源库的基本步骤 第一步:创建开源库 第二步:将开源库上传到Github 第三步:通过JitPack发布开源库 第四步:在新项目添加依赖使用开源库 创建开源库 File->New->New Module->Android Library lib就是我创建的开源库。 将开源库上传到Github VCS->Import into Version... 在Github发布开源库的基本步骤 第一步:创建开源库 第二步:将开源库上传到Github 第三步:通过JitPack发布开源库 第四步:在新项目添加依赖使用开源库 创建开源库 File->New->New Module->Android Library lib就是我创建的开源库。 将开源库上传到Github VCS->Import into Version...
- 什么ABI ABI就是Application binary interface的意思,即应用程序二进制接口,定义了一套规则。允许编译好的二进制目标代码能在所有兼容该ABI的操作系统中无需改动就能运行。不同的Android手机使用不同的CPU,因此需要提供对应的二进制接口交互规则(即对应的ABI文件)才能进行交互。目前,有部分CPU是能支持多种交互规则,但这是在牺牲性能... 什么ABI ABI就是Application binary interface的意思,即应用程序二进制接口,定义了一套规则。允许编译好的二进制目标代码能在所有兼容该ABI的操作系统中无需改动就能运行。不同的Android手机使用不同的CPU,因此需要提供对应的二进制接口交互规则(即对应的ABI文件)才能进行交互。目前,有部分CPU是能支持多种交互规则,但这是在牺牲性能...
- Fragment是Android3.0之后才推出来的。可以用来做底部菜单,现在很多APP都有用到这个底部菜单。当然TabHost也可以用来做底部菜单,但是Fragment来做,动画效果这些可以做得更炫。 Fragment和Activity之间是可以相互进行参数传送这些。但是Fragment不可以直接就将数据传送到另外一个Fragment,而... Fragment是Android3.0之后才推出来的。可以用来做底部菜单,现在很多APP都有用到这个底部菜单。当然TabHost也可以用来做底部菜单,但是Fragment来做,动画效果这些可以做得更炫。 Fragment和Activity之间是可以相互进行参数传送这些。但是Fragment不可以直接就将数据传送到另外一个Fragment,而...
- 转自http://segmentfault.com/blogs,转载请注明出处 Android MVP Pattern AndroidMVP模式11也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP模式的优势就充分显示出来了。 导读:MVP模式是MVC模式在Android上的一种变... 转自http://segmentfault.com/blogs,转载请注明出处 Android MVP Pattern AndroidMVP模式11也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP模式的优势就充分显示出来了。 导读:MVP模式是MVC模式在Android上的一种变...
- 项目结构如图,MyToast类是自定义的Toast类,MainActivity是主要Activity类 MainActivity.java: package com.taskManager.activity; import java.util.ArrayList; import java.util.List; import android.app.Acti... 项目结构如图,MyToast类是自定义的Toast类,MainActivity是主要Activity类 MainActivity.java: package com.taskManager.activity; import java.util.ArrayList; import java.util.List; import android.app.Acti...
- package com.lab.activity; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.... package com.lab.activity; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android....
- Dalvik和ART 什么是 Dalvik? Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适... Dalvik和ART 什么是 Dalvik? Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适...
- Ashmem 是什么? Ashmem(Anonymous Shared Memory 匿名共享内存),是在 Android 的内存管理中提供的一种机制。它基于mmap系统调用,不同的进程可以将同一段物理内存空间映射到各自的虚拟空间,从而实现共享。 mmap机制 mmap系统调用是将一个打开的文件映射到进程的用户空间,mmap系统调用使得进程之间通过映射同一个普通文... Ashmem 是什么? Ashmem(Anonymous Shared Memory 匿名共享内存),是在 Android 的内存管理中提供的一种机制。它基于mmap系统调用,不同的进程可以将同一段物理内存空间映射到各自的虚拟空间,从而实现共享。 mmap机制 mmap系统调用是将一个打开的文件映射到进程的用户空间,mmap系统调用使得进程之间通过映射同一个普通文...
- 今天用传统方式,直接在Android 10上直接调用startService方法启动service服务,没有多久就报ANR。如果手机熄灭的状态下,打调试包,控制台会报以下错误: Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.wong.te... 今天用传统方式,直接在Android 10上直接调用startService方法启动service服务,没有多久就报ANR。如果手机熄灭的状态下,打调试包,控制台会报以下错误: Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.wong.te...
- 方式1. 加载一个网页: mWebView.loadUrl("http://www.baidu.com"); 1 方式2:加载assets中的html页面: mWebView.loadUrl("file:///android_asset/html/index.html"); 1 方式3:加载手机本地的html页面: 这种方式要用FileProvider获得con... 方式1. 加载一个网页: mWebView.loadUrl("http://www.baidu.com"); 1 方式2:加载assets中的html页面: mWebView.loadUrl("file:///android_asset/html/index.html"); 1 方式3:加载手机本地的html页面: 这种方式要用FileProvider获得con...
- Android生命周期 Activity3个阶段 开始Activity: onCreate() &nb... Android生命周期 Activity3个阶段 开始Activity: onCreate() &nb...
- 《Android MVP设计模式最佳实现》,我们在这篇文章的基础上加上Dagger2后应用。为什么要这样做呢? 第一,MVP的结构模式,已让我们获得了一个不错的可维护、易于维护的结构。而用Dagger2而是为了使用我们的程序设计变得更加松耦合。 参考《什么是Dagger2?》 1.创建LoginModule、AppModule:提供注入对象 @Module publ... 《Android MVP设计模式最佳实现》,我们在这篇文章的基础上加上Dagger2后应用。为什么要这样做呢? 第一,MVP的结构模式,已让我们获得了一个不错的可维护、易于维护的结构。而用Dagger2而是为了使用我们的程序设计变得更加松耦合。 参考《什么是Dagger2?》 1.创建LoginModule、AppModule:提供注入对象 @Module publ...
- Flutter的Widget等价于Android中的View。Android的View在绘制结束后,就不会重绘,直到调用invalidate时才会重绘。Flutter的widget是不可改变的,因此不能直接更新,而必须使用Widget的状态。Flutter的widget分为有状态和无状态两种。它们的核心特性是相同的,每一帧它们都会重新构建,不同之处在于有状态的Widge... Flutter的Widget等价于Android中的View。Android的View在绘制结束后,就不会重绘,直到调用invalidate时才会重绘。Flutter的widget是不可改变的,因此不能直接更新,而必须使用Widget的状态。Flutter的widget分为有状态和无状态两种。它们的核心特性是相同的,每一帧它们都会重新构建,不同之处在于有状态的Widge...
- Flutter框架使用widget作为核心构建块,从控件(文本、按钮、toggle等)到布局(居中、填充、行、列等)的任何内容都是widget。Inspector是用于可视化和浏览Flutter这些widget树的强大工具。 使用Flutter开发,可能对于传统的app开发有点不习惯,尤其是在布局方面,传统的app开发,使用xml布局是很直观,很灵活的,到了Flutt... Flutter框架使用widget作为核心构建块,从控件(文本、按钮、toggle等)到布局(居中、填充、行、列等)的任何内容都是widget。Inspector是用于可视化和浏览Flutter这些widget树的强大工具。 使用Flutter开发,可能对于传统的app开发有点不习惯,尤其是在布局方面,传统的app开发,使用xml布局是很直观,很灵活的,到了Flutt...
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签