Android Service实战之音乐播放器
音乐播放器是 Android 常见的实验,也是用户常用的软件,更是实践 Service 常用的练手项目,本文将展示我的音乐播放器练手过程。
构建 Activityxml 文件<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg1"
tools:context=".MusicPlayer"
android:gravity="center"
android:orientation="vertical">
<ImageView
...
Android之Service
Service 是 Android 四大组件之一,用来执行不需要前台或者耗时长的任务
Service 是什么Service 是 Android 四大组件之一,它可以在后台执行长时间运行操作而没有用户界面的应用组件。
服务与其他应用程序对象一样,在其托管进程的主线程中运行。这意味着,如果你的服务要执行任何 CPU 密集型(例如 MP3 播放)或阻塞(例如网络)操作,它应该在 Service 中再创建一个子线程.
Service 的启动startService()
启动 Service
显式启动通过类名称来启动,需要在 Intent 中指明 Service 所在的类,并调用 startService (lntent)启动 service
final Intent intentStart = new Intent(ServiceActivity.this, StartService.class);
startService(intentStart);
在上面的代码中,Intent 指明了启动的 Service 所在类为 StartService。通过该方式启动 Service, ...
Android|Intent组件使用
之前学习 ListView,RecyclerView 时己经多次使用了 Intent,当一个 Activity 需要启动另一个 Activity 时, 程序并没有直接告诉系统要启动哪个 Activity,而是通过 Intent 来表达自己的意图:需要启动哪个 Activity。
Intent不仅是封装Android应用程序需要启动某个组件的“意图”,还是应用程序组件之间通信的重要媒介。
Intent 介绍Intent 的作用
启动 Activity
Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。Intent 描述了要启动的 Activity,并携带了任何必要的数据。
如果希望在 Activity 完成后收到结果,则可以调用 startActivityForResult()。在 Activity 的 onActivityResult() 回调中,Activity 将结果作为单独的 Intent 对象接收。
启动服务
Service 是一个不使用用户界面而在后台执行操作的组件。通过将 I ...
RecyclerView的使用
RecyclerView 是 Android L 新增的控件,被称为 ListView 的继任者
RecyclerView 概述在开发 RecyclerView 时充分考虑了扩展性,因此用它可以创建想到的任何种类的的布局。但在使用上也稍微有些不便,比如使用步骤更加复杂,特别是一些控制点击、长压事件需要自己完成。使用 RecyclerView 开发的项目结构大致如下图所示:从上图可以看到,要使用 RecyclerView,需要先了解清楚 LayoutManager 和 Adapter 元素,分别如下:
LayoutManager:用来确定每一个 item 如何进行排列摆放,何时展示和隐藏。回收或重用一个 View 的时候,LayoutManager 会向适配器请求新的数据来替换旧的数据,这种机制避免了创建过多的 View 和频繁的调用 findViewById 方法。目前 RecyclerView 库提供了如下三种子 Manager:
LinearLayoutManager:展示了水平或者垂直的滚动列表,相当于 ListView,但是没有页眉和页尾。
GridLayoutManag ...
ListView的使用
ListView 作为常见的 Android 高级控件
ListView 是什么ListView 作为常见的 Android 高级控件
ListView 使用布局在 acitivity 中添加 ListView 的控件<ListView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/list_item1"/>
后台代码构造适配器可使用 Android 自带的,也可自定义
适配器传入 ListviewlistView=(ListView) findViewById(R.id.list_item1);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_checked, strs));
通过指定 android.R.layout.simple_list_ite ...
Hexo折腾(二)怎么在主题更新时保留自己代码
博客主题会一直更新,但是很多人定制了自己的代码,我也不例外,但是更新就会丢失自己的代码,还得重新调整,本文将会解释如何在主题更新时保留自己的代码。
保留自己已改动的代码进入主题目录
cd 进入 node_modules/hexo-theme-xxx
cp 你要的文件到 hexo 根目录的 source 里
检查主题更新
在 hexo 根目录,运行 npm outdated,检查有哪些依赖有更新,若发现自己主题有更新,则记下 Latest 的版本号,修改 package.json
运行 npm install
完成更新
重启 hexo 服务即可
使用STM32进行环境温湿度测量
最近,学校安排了一次课程实训,需要完成的目标是,依据电路图自己焊接元器件,组建 STM32F103 为主控的开发板,并在开发板上配置各类传感器,完成测量任务。
开发板焊接硬件电路设计硬件设计思路:采用 STM32F103RCT6 芯片采用 DS18B20 来采集温度数据其测量范围大且精度高适用的范围广,利用 DHT11 来进行湿度采集并传输到 STM32FRCT6 上。由 LCD1602 显示出温湿度值,和它们的阈值,通过按键可以修改阈值的大小并且设置阈值还原键,通过 LED5 来做电源显示,表示电路可以进行外部供电,用 LED3 和 LED4 来做警报灯当超出阈值或低于阈值时发出警报。
DHT11 电路设计
DS18B20 电路设计
电源电路设计
按键电路设计
LED 灯电路设计
LCD 电路设计
总体电路设计
原始 PCB 版图片
硬件调试由于缺少经验,焊的时候温度没太注意,把焊盘烫坏一个,飞线解决。在测试过程中,发现一个 LED 灯不亮,无论怎么调整代码,其依 k 旧无法亮起。用万用表测试,三极管虚焊,好家伙。
软件编写
代码已经开源在 https://github.com/ ...
宇树A1折腾日记
近日,有幸参加了一个四足机器狗越障挑战赛,体验了一把国内能和波士顿对抗的很酷的公司-宇树科技做的宇树 A1,机器狗的强大的性能让我和队友惊叹,但是折腾 A1 机器狗的过程却是比较曲折,这会是本文的主题
基本情况介绍
宇树 A1 拥有两块主控板,靠近摄像头的一块板是树莓派,用于实现计算机视觉等功能。靠近机器狗屁股的是 x86 架构的主控板,负责运动控制
宇树 A1 搭载了一台 D435i 的 Intel Realsense 原深感深度相机,可实现目标识别,颜色识别,深度感知等(需配套 opencv 的相关代码)
遥控器遥控操作
L2+B 激活、休眠电机
L2+A 改变机器狗身体高度、锁死机身
start 解锁、踏步
L1+start 进入运动模式
L1+L2+start 退出运动模式
L1+A 打招呼(运动模式下)
L1+B 滑步(运动模式下)
L1+X 跳舞(运动模式下)
L1+Y 后空翻(运动模式下)
L2+Y 侧翻(运动模式下)
L2+X 翻到后重新恢复正确姿态
程序控制操作环境安装和配置前文提到,机器狗搭载了两块主控板,也提供了四个 USB3 的接口,两个 RJ-45 网 ...
数据库复习-SQL
SQL 数据库中的术语
基本表–关系
记录–元组
字段(列)-属性
字段值–属性值
字段类型(列类型)–域
码-键
主码–主键
外码–外键
SQL-数据库创建CREATE DATABASE <数据库名>
[ ON [ PRIMARY ] <文件> [ ,...n ]
[ , <文件组> [ ,...n ] ]
[ LOG ON <文件> [ ,...n ] ] ]
[ COLLATE <校验方式名> ]
[ WITH <选项> [,...n ] ] [;]
create database test
on primary(name=test1, //文件的逻辑名称,不同于数据库同名
filename='D:\SQL2008DATAS\test1.mdf',
size=3MB, //初始文件大小
maxsize=unlimited, //可以指定具体数值,如20MB
filegrowth=5MB),
(name=test2,
filename='D:\SQL2008DATAS\test2.mdf',
...
数据库复习
第一章发展历史三种模型
层次模型
网状模型
关系模型
术语数据与信息数据描述事物的符号记录
信息从数据中获得有意义的内容
数据的特征静态特征
基本结构
数据间的联系
取值范围约束
动态特征指对数据可以进行的操作以及操作规则 -查询 -更改-插入-更新
数据库(DB)长期存放在计算机存储设备上有组织的、可共享的、相关的数据集合。特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。
数据库系统 DBS 的核心,是被管理的对象
数据库管理系统专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间,负责对 DB 进行管理与维护。
数据库系统数据库系统(DataBase System, 简称 DBS)即具有管理和控制数据库功能的计算机系统。注:常将数据库系统简称为数据库。a、数据库系统的 5 个组成部分:◆ 硬件系统◆ 数据库 DB◆ 数据库管理系统 DBMS◆ 相关软件(支持软件,如操作系统等;应用开发工具软件等)◆ 数据库系统用户:▼ 数据库管理员(DBA):负责数据库管理的和维护操作。
数据库系统的主要特征① 实现数据共享② 减 ...