avatar
文章
97
标签
33
分类
13
首页
归档
标签
分类
友链
关于
Fleming's Blog
搜索
首页
归档
标签
分类
友链
关于

Fleming's Blog

sqlite3查看数据库
发表于2018-12-05|经验
sqlite3查看数据库.db 文件通常是 SQLite 数据库文件。Room 是 Android 官方推荐的本地数据库库,它底层使用的就是 SQLite。因此,Room 生成的 .db 文件本质上就是一个标准的 SQLite 数据库文件。 你可以通过以下方式在电脑上查看 .db 文件的内容: ✅ 方法一:使用 sqlite3 命令行工具(推荐)步骤如下: 安装 sqlite3 工具(如果尚未安装): macOS(通常已预装):1sqlite3 --version Windows: 下载地址:https://www.sqlite.org/download.html 下载 sqlite-tools-win32-*.zip,解压后将 sqlite3.exe 加入系统 PATH。 Linux(Ubuntu/Debian):1sudo apt install sqlite3 打开终端(命令行)并进入 .db 文件所在目录,例如: 1cd /path/to/your/database/ 使用 sqlite3 打开数据库: 1sqlite3 your_database...
Android开发方向
发表于2018-06-04|系统
Android开发方向Android系统开发主要分为两个大的方向:应用开发(上层开发)和系统层开发(底层开发)。每个方向都有其特定的关注点和技术要求。 应用开发方向应用开发者主要关注于用户界面的设计和功能的实现。随着经验的积累,他们可能会转向以下领域: 用户体验设计:专注于用户界面和交互体验的设计。 架构设计:学习并实践不同的软件设计模式,如MVC、MVP、MVVM等,以构建可维护、可扩展的应用程序。 性能优化:掌握如何优化应用性能,包括内存管理、响应速度等方面。 跨平台开发:学习使用Flutter、React Native等技术来创建可以同时运行在Android和iOS上的应用。 特定领域的应用开发:例如音视频开发、游戏开发等。 系统层开发方向系统层开发者则更关注于Android系统的底层实现,包括但不限于: Framework层开发:深入了解Android框架的工作原理,包括Activity Manager Service (AMS)、Window Manager Service (WMS)等核心服务的源码解析。 BSP(Board Support Package)驱动...
Flutter常用指令
发表于2018-04-02|Flutter
Flutter常用指令Flutter 的常用指令主要分为 开发工具命令(flutter 命令行)和 Dart 工具命令(dart 命令行),以下是核心指令整理: 一、Flutter 常用命令1. 项目创建与运行 创建新项目 1flutter create <项目名称> 运行项目(自动选择设备) 1flutter run 指定设备:flutter run -d <设备ID>(通过 flutter devices 查看设备ID) 生产模式:flutter run --release 调试模式:flutter run --debug 快捷指令 r Hot reload. R Hot restart. h List all available interactive commands. d Detach (terminate “flutter run” but leave application running). c Clear the screen q Quit (terminate the application on the device)...
启动模式 - intent
发表于2017-09-18|经验
启动模式 - intent好的,我们来详细对比 singleTop 与其他三种标准启动模式(standard, singleTask, singleInstance)在 Intent 获取方式 以及 核心行为 上的区别。 核心区别在于:系统何时会创建新实例,何时会复用旧实例,以及复用时如何传递新的 Intent。 1. standard (标准模式) 行为:这是默认模式。每次启动该 Activity,系统都会创建一个新的实例,并将其压入启动它的 Activity 所在的任务栈(Task)中。可以有多个实例,也可以在不同任务栈中存在。 Intent 获取: 只在 onCreate() 中获取。因为每次都是新实例,所以新的 Intent 总是通过 onCreate(Bundle savedInstanceState) -> getIntent() 来获取。 onNewIntent() 永远不会被调用,因为没有复用旧实例的情况。 适用场景:大多数常规 Activity,例如详情页、设置页等,每次打开都希望是独立的新页面。 2. singleTop (栈顶复用模式) 行为...
Repo upload的细节
发表于2017-09-13|Repo
Repo upload的细节1git config --get remote.gerrit.review 输出: 1ssh://gerrit 要正确设置review url 到底应该是SSH还是HTTP???12cd ~/falconrepo forall -c 'git config --replace-all remote.gerrit.review http://10.10.1.127:30090/' 然后验证: 12cd prebuilts/sdkgit config --get remote.gerrit.review ✅ 应该输出: 1http://10.10.1.127:30090/ 🔁 建议对 cust/app/orion-sipclient 也执行一次验证和修复! 🧠 为什么 review URL 必须是 HTTP,不能是 SSH?因为: commit-msg hook 是从 http://.../tools/hooks/commit-msg 下载的 Gerrit Web UI 链接是 http://.../c/12345...
git switch和checkout的区别
发表于2017-08-27|Git
git switch和checkout的区别git switch 和 git checkout 都可以用来切换分支,但它们的设计理念、功能和使用方式有所不同。git switch 是 Git 2.23 版本(2019年发布)引入的新命令,旨在将 git checkout 的功能进行拆分,使其职责更单一、更清晰。 以下是它们的主要区别: 1. 设计目的与职责 git checkout: 这是一个“多面手”命令,功能非常复杂。它既可以用来切换分支,也可以用来恢复工作区文件(丢弃修改)、创建新分支等。这种多功能性使得它容易混淆,尤其是在处理文件和分支时。 git switch: 这是一个“单一职责”命令,专门用于切换分支。它的设计目的就是让分支切换操作更清晰、更安全、更直观。 2. 创建新分支的方式 git checkout: 创建并切换到新分支:git checkout -b <new-branch-name> 从特定提交创建新分支:git checkout -b <new-branch-name> <start-point> git swi...
如何使用AsyncTask
发表于2017-08-16|经验
你会使用AsyncTask吗?前言AsyncTask 的本身其实是对 Handler 机制的封装,目的是让异步操作的实现变得简单,更多的关注业务实现。 基本步骤 创建一个继承自 AsyncTask 的类。 确定 AsyncTask<Params(参数), Progress(进度), Result(结果)> 泛型的三个参数类型。 重写以下方法: 1234protected void onPreExecute() // 可选protected abstract Result doInBackground(Params... params); // 必须重写protected void onPostExecute(Result result) // 可选,但一般都会重写protected void onProgressUpdate(Progress... values) // 可选,如果不需要进度可以写 Void(大写的 V) 注意: onPreExecute 方法会在execute方法调用前调用,运行在UI线程,可以做进度框的展示等 ; doInB...
有一种优雅的架构叫MVP架构
发表于2017-08-15|日常
前言MVP 是 Model-View-Presenter 的缩写,是一种经典的 Android 应用架构模式。它将业务逻辑从 Activity/Fragment 中抽离出来,使代码更易测试、维护和复用。软件开发总是强调一个重点,就是尽可能的将系统做到高内聚低耦合,各模块各司其职,职责单一,逻辑清晰。 从上图可以清晰的理解什么是MVP(Model、View、Presenter)架构,其实MVP是从MVC模式衍生出来的,目的就是为了让视图层view和模型层model之间解耦。 它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。在MVC里,View是可以直接访问Model的!从而,View里会包...
Android自学路线
发表于2017-08-14|日常
前言很多初学者面对 Android 开发感到迷茫,不知道从何入手。本文提供一条清晰的自学路径,帮助你系统掌握 Android 开发技能。 第一阶段:Java 基础 面向对象(类、对象、继承、多态) 异常处理 集合框架(List、Map、Set) 多线程基础 IO 流 推荐书籍:《Java核心技术 卷I》 第二阶段:Android 基础组件 Activity 生命周期 Intent 与页面跳转 布局(LinearLayout、RelativeLayout、ConstraintLayout) 常用控件(TextView、Button、EditText、ListView、RecyclerView) 资源文件(strings.xml、colors.xml、dimens.xml) 第三阶段:进阶知识 网络请求(OkHttp、Retrofit) 数据存储(SharedPreferences、SQLite、Room) 异步处理(Handler、AsyncTask、Thread、ExecutorService) 广播与服务(BroadcastReceiver、Service) 权限管理(...
如何创建和使用SQLite数据库
发表于2017-08-13|经验
前言什么是SQLite?SQLite是一款轻型数据库,它遵守ACID,能够嵌入到使用它的应用程序中。作为一个自包含的、基于文件的数据库,SQLite提供了非常出色的工具集能够处理所有类型的数据,与托管在服务器上基于进程的关系型数据库相比它的约束更少,也更易用。 当应用程序使用SQLite时,SQLite并非作为一个独立进程通过某种通信协议(例如socket)与应用程序通信,而是作为应用程序的一部分,应用程序通过调用SQLite的接口直接访问数据文件。 为什么要用 SQLite? 不需要一个单独的服务器进程或操作的系统(无服务器的)。 SQLite 不需要配置,这意味着不需要安装或管理。 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。 SQLite 是自给自足的,这意味着不需要任何外部的依赖。 SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。 SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。 SQLite 使...
1…678…10
avatar
Fleming Chen
不积跬步无以至千里,不积小流无以成江海。——《荀子·劝学》
文章
97
标签
33
分类
13
Follow Me
公告
欢迎来到我的博客,有任何疑问可以随时联系我交流讨论!
最新文章
音频流处理过程
音频流处理过程2026-01-16
AOIP和VOIP
AOIP和VOIP2026-01-06
AudioFlinger的基本概念
AudioFlinger的基本概念2025-08-28
音频领域基本概念
音频领域基本概念2025-08-20
Unicast、Multicast、Broadcast的含义及关系
Unicast、Multicast、Broadcast的含义及关系2025-08-19
分类
  • ADB9
  • Code18
  • Flutter1
  • Git10
  • Grep1
  • Linux3
  • Repo2
  • Unity 3D1
标签
Markdown 架构 unity adb 学习路线 Android Studio 日常 系统广播 git UI 缓存 AlertDialog Dialog Handler LruCache BroadcastReceiver 音频 MVP SQLite flutter 数据库 经验 AsyncTask Message EditText 系统 IDE 扩展 开发工具 代码 linux Android 自学
归档
  • 一月 2026 2
  • 八月 2025 3
  • 七月 2025 5
  • 六月 2025 1
  • 四月 2025 2
  • 十一月 2024 1
  • 七月 2024 2
  • 二月 2024 3
网站信息
文章数目 :
97
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2016 - 2026 By Fleming Chen框架 Hexo 6.1.0|主题 Butterfly 5.5.4
搜索
数据加载中