- android 蓝牙后台运行,Android后台服务蓝牙扫描
weixin_39801714
android蓝牙后台运行
谢谢你的回答.问题是应用程序上下文不可用.我找到了解决方案.我启动一个Alarmmanager并每15分钟发送一次意图.这个意图由我自己的接收器处理,该接收器在AndroidManifest.xml中声明.如果处理了意图,则应用程序上下文可用,我可以启动该服务.启动AlarmManagerIntentalarmIntent=newIntent(MyApp.getAppContext(),Alarm
- 14.5 AlarmManager
jadefly
简介闹钟服务,在特定的时刻为我们广播一个指定的Intent。Timer类:不适合长期后台运行定时任务,CPU一旦休眠Timer中的定时任务就无法运行;AlarmManager:具有唤醒CPU的功能;常用方法set(inttype,longstartTime,PendingIntentpi):一次性闹钟setRepeating(inttype,longstartTime,longintervalTi
- AlarmManager 实现定时任务
Zane_Samuel
因为自己项目需要一个计时任务,考虑到种种原因,项目大概需要的是这样的只要进程不被杀死,每间隔30分钟向后台发送一次服务,将地图的地位点发送到后台,考虑到如果用handler和Thread的或者是Timer的话考虑一个当时屏幕熄灭或者锁屏的情况下可能会出现问题。所以最后的选择方案是AlarmManager(闹钟服务)、BroadCastReceiver、Service实现了一个计时器````主要实现
- 服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志
知之狐
服务器运维监控指标
一Prometheus入门1.1入门介绍运维体系~指标监控先来一张图,说明一下Prometheus监控相关的软件和知识点。1:首先要安装:Prometheus,负责收集各种监控指标,也包括自己定监控2:接着安装Grafana全面瓦解,负责展示监控指标3:接着安装各种收集插件(导出器)exporter4:安装告警工具alarmManager新增指标步骤:安装配置exporter、到premetheu
- android AlarmManager详解,Alarm的设定和取消。
sky_brian
Android学习AlarmManager设定闹钟取消闹钟
设定alarm的话,大概需要用到如下几步:1.创建一个Intent2.创建一个PendingIntent3.得到ALARM_SERVICE的AlarmManager4.使用AlarmManager的setapi,假如是取消,那就使用cancelandroid自带的AP对于Alarm的管理是很巧妙的,例如Calendar,它基本上只会给系统设定一个alarm,等这个alarm结束之后,再设定下一个,
- Jetpack---WorkManager
o0Oo0Oo0Oo0Oo0O
1.使用背景:应用程序中不需要及时完成的任务提供了一个统一的解决方案,以便在设备电量和用户体验之间达到一个较好平衡。2.WorkManager主要特点:兼容性广并且保证任务一定会被执行,兼容方式API23以上通过JobScheduler完成,API23以下通过AlarmManager和BroadcastReceuvers组合完成任务无论哪种方案都是交由Executor执行的。WorkManager
- [转]Android Doze模式下的AlarmManager策略
努力深耕Android的小透明
最近项目中用到了闹钟功能,所以对不同版本的手机(4.4-7.1)的闹钟策略都进行了研究,下面对于6.0以后出现的Doze模式进行总结:Doze模式的定义 Android6.0引入了Doze模式,用户拔掉电源,在关闭手机屏幕并且不动的一段时间后,系统便会进入Doze模式。此模式下通过延缓CPU和网络活动减少电量的消耗。阻止APP访问网络,推迟jobs,syncs,标准alarms.定期系统会退
- WorkManager调度任务
slience....
android
WorkManager调度任务一、简介WorkManager是jetpack中的组件之一,主要用于后台处理任务。适用于后台处理操作的推荐apiWorkManager最低能兼容APILevel14,低于API23WorkManager会使用AlarmManager+BroadcastReceiver完成任务,高于API23使用JobScheduler来完成任务。两种方案最终都是调用Executor来
- 2018-08-09
wing_hwy
AlarmManager通过PendingIntent传值遇到的坑Android7.0开始通过intent传值,一般基本数据类型可以,但是遇到传递序列化值,接收方获取到的都是null,连附带的基本数据类型都获取不到,在Android5.1可以正常传递,可能内部intent源码做了限制,最近公司项目比较忙,没有去研究源码,待研究。。。。贼坑................
- 展开说说:Android之常用的延时执行策略
老梁学Android
android
总结了以下六种常用的Android延时执行策略,以此记录:1、TimerTask2、Handler.postDelayed3、Handler.sendEnptyMessageDelayeed4、Thread.sleep线程休眠-需要在子线程5、使用AlarmManager-全局定时器或者闹钟6、Wait首先定义一个时间常量:publicstaticfinallongDELAYTIME=2000L;
- Jetpack学习-8-WorkManager
主音King
WorkManager是什么运行可推迟的后台工作。根据设备API情况,自动选择JobScheduler或AlarmManager来实现后台任务,在应用推出之后还可以继续执行。Worker任务的执行者,抽象类,需要执行的具体任务,需要实现doWork执行在单独的后台线程里。doWork的返回值:Worker.Result.SUCCESS任务执行成功Worker.Result.FAILURE任务执行失
- 初探AlarmManager:使用
Mr_Shell
Android闹钟服务AlarmManager是Android系统提供的一种执行定时任务的手段,一般适用于长时间或者需要唤醒cpu保证准时的定时任务,提供唤醒和非唤醒,重复和一次性等模式。系统源码中的闹钟app就是基于它。设备关闭或是重启的时候会被清除。使用方式获取AlarmManager实例AlarmManageralarmManager=(AlarmManager)context.getSys
- Android 电量优化概览
帅次
Android基础梳理android
目录一、三大耗电模块二、显示2.1Overdraw简介2.2Overdraw检测2.3UI优化优化三、网络3.1移动网络3.2Wi-Fi3.3网络优化四、CPU4.1变频4.2CPU优化4.2.1计算优化4.2.2避免WakeLock使用不当4.2.3避免AlarmManager使用不当4.2.4使用JobScheduler(WorkManager)五、其他5.1GPS优化5.2精简冗余的服务(S
- PendingIntent待定意图
在下嗷呜
androidjava
PendingIntent(待定意图)是Android提供的一种外部程序调起自身程序的能力,生命周期不与主程序相关。PendingIntent如果未cancel(),即使App关闭,也会继续存在。外部程序通过PendingIntent只能调起三种组件:Activity,Service,BroadcastPendingIntent的使用场景有三个:(1)使用AlarmManager设定闹钟(2)在系
- AlarmManager闹钟管理者
在下嗷呜
androidjava
AlarmManager是Android提供的一个全局定时器,利用系统闹钟定时发送广播。这样做的好处是:如果App提前注册闹钟的广播接收器,即使App退出了,只要定时到达,App就会被唤醒响应广播事件。AlarmManager设置的PendingIntent待定意图,只要未cancel,就会按时启动,无论程序是否关闭。请注意,静态注册的广播接收者在即使程序关闭也依然生效;动态注册的广播接收者在程序
- 定时锁屏 android,Android定时锁屏功能实现(AlarmManager定时部分)
椒盐皮皮鲲
定时锁屏android
菜鸟入坑记——第一篇关键字:AlarmManager一、AlarmManager简介:了解android低电耗模式:https://developer.android.google.cn/training/monitoring-device-state/doze-standby.htmlAlarmManager的作用:在特定的时刻为我们广播一个指定的Intent。即:自己设定一个时间,当系统时间到
- android 定点定时任务,Android定时任务
时间静默
android定点定时任务
本章目录PartOne:TimerPartTwo:AlarmManagerAndroid中有很多种实现定时任务的方式,比如Timer,CountDownTimer,AlarmManager,handler和Thread。不过,主要常用的有三种:Timer(Java遗留的)Handler(下雪动画那篇使用过了)AlarmManager(Android官方推荐)PartOne:TimerTimer是一
- AlarmManager实现创建多个定时任务功能
qq_34333537
AndroidAndroid
需求情景:接收服务器下发的定时任务:定时亮屏、定时调节音量、定时调节亮度。具体定时任务:音量和亮度只需要在开始时间去执行,电源开关(其实是系统开关屏)需要在开始时间开启,结束时间关闭。具体调节亮度、音量、开关屏操作暂不讲述。参考博客:https://blog.csdn.net/wei_chong_chong/article/details/51258336https://blog.csdn.net
- Android Framework知识点整理
鹏鹏2019
AndroidFramework知识点一系统核心服务(SystemServer)1.ActivityManager->activityservicebroadcastprovider2.WindowManager3.PackageManager4.PowerManager5.InputManager6.SensorManager7.AlarmManager...二系统启动过程1.init2.zyg
- 七、WorkManager
李腾腾
什么是WorkmanagerWorkManager是google提供的异步执行任务的管理框架,会根据手机的API版本和应用程序的状态来选择适当的方式执行任务。当应用在运行的时候会在应用的进程中开一条线程来执行任务,当退出应用时,WorkManager会选择根据设备的API版本使用适合的算法调用JobScheduler或者FirebaseJobDispatcher,或者AlarmManager来执行
- android 定时重启设备
通信侠
android_systemandroid
摘要:本文主要介绍一种定时重启设备的方案,目的是对于低内存设备,防止其由于长时间不关机且应用消耗过多RAM导致卡顿甚至无法开机的现象。基本方案是通过AlarmManager设置定时闹钟唤醒系统并且判断是否符合重启条件,从而进行弹框提醒和倒计时重启。一、自动重启实现由于是系统定制功能,所以设计之初定位在Settings模块中实现patch代码说明:1.监听开机广播设置闹钟AndroidManifes
- Xamarin.Android通过闹钟(AlarmManager)实现定时功能
zlbcdn
XamarinXamarin.AndroidAlarmManager
目录1、说明2、效果2.1实现效果2.2功能说明3、代码实现3.1定义广播接收器3.2layout文件3.3Activity代码4、代码下载5、其他说明6.1其他说明6、参考1、说明在安卓程序中会用到定时做某事的功能。方法有很多种,闹钟是其中一种。简单介绍下。2、效果2.1实现效果2.2功能说明第一输入框代表,从现在开始几秒后,启动这个闹钟。第二个输入框代表,这个闹钟是一个重复闹钟,重复的时间是多
- Android优化 —— JobScheduler
Zsago
优化android优化
概述在Android开发中,会遇到这种场景:需要在稍后的某个时间点或者当满足某个特定的条件时执行一个任务,例如当设备接通电源适配器或者连接到WIFI。幸运的是在API21(Android5.0,即Lollipop)中,google提供了一个新叫做JobScheduler的组件来处理这样的场景。当一系列预置的条件被满足时,JobScheduler为应用执行一个操作,与AlarmManager不同的是
- Android各版本AlarmManager使用
Candy有雪吃
一、长时间定时任务,比较Timer、Hnadler、AlarmManagerTimer,有一个明显的问题,它并不太适合用于需要长期在后台运行的定时任务。我们都知道,为了能让电池更加耐用,每种手机都会有自己的休眠策略,Android手机就会在长时间不操作的情况下自动让CPU进入睡眠状态,这就有可能导致Timer中的定时任务无法正常运行。Hnadler,Handler的postDelay方法也可以实现
- Android AlarmManager设置闹钟
南国樗里疾
AndroidandroidAlarmManager
官网镇楼:设置重复闹铃时间闹钟具有以下特征:它们可让您按设定的时间和/或间隔触发intent。您可以将它们与广播接收器结合使用,以启动服务以及执行其他操作。它们在应用外部运行,因此即使应用未运行,或设备本身处于休眠状态,您也可以使用它们来触发事件或操作。它们可以帮助您最大限度地降低应用的资源要求。您可以安排定期执行操作,而无需依赖定时器或持续运行后台服务简单来说,要在设定的时间执行具体的任务,可以
- Android几种定时任务实现方式汇总
工程师丶佛爷
原创案例部分开发工具类android
目录前言方式一:AlarmManagerAPI19之前AlarmManager常用的一些方法参数说明使用举例AlarmManager实例Demo讲解(包含版本适配以及高版本设置重复闹钟)AlarmManager总结方式二:Handler实现方式采用Handle与线程的sleep(long)方法采用Handler的postDelayed(Runnable,long)方法采用Handler与timer
- Android 周期任务
Steve_XiaoHai
周期任务androidjava
AlarmManager使用1.创建意图//创建意图,启动MonthlyTaskServiceIntentintent=newIntent(getContext(),TimeTaskService.class);//传递数据intent.putExtra(TimeTaskService.KEY_TITLE,userRemind.getTitle());intent.putExtra(TimeTas
- 已经有了 Intent,那为啥还要 PendingIntent?
纳兰沫
摘录自已经有了Intent,那为啥还要PendingIntent?使用场景1.Intent@startActivitysendBroadcaststartService@Intent通常是在启动Activity、发广播、启动Service的时候2.PendingIntent@AlarmManager、Notification/NotificationManager、RemoteViews/AppW
- 安卓开发后台应用周期循环获取位置信息上报服务器
baorant在写代码
移动开发android服务器运维
问题背景最近有需求,在APP启动后,退到后台,还要能实现周期获取位置信息上报服务器,研究了一下实现方案。问题分析一、APP退到后台后网络请求实现APP退到后台后,实现周期循环发送网络请求。目前尝试了两种方案是OK,如下:(1)AlarmManager+前台服务+广播的方案,可以正常实现,大体思路是,启动一个前台服务,使用AlarmManager发起一个定时广播,然后广播接收器接收到广播后,循环去执
- Android4.4平台相关问题集锦
Eason风云
Javaandroid
1.一般系统会默认每分钟会发送TIME_TICK的广播到应用上层,上层应用可以接收到这个广播之后,处理相关的业务逻辑(理想情况下),但是在实际场景中,Android4.4的设备休眠后,就不会发送该类广播到上层中来,进而影响到相关的业务逻辑。所以在实际中,我们最好不要处理系统TIME_TICK的广播来开发自己的业务逻辑,可以使用AlarmManager来处理定时唤醒系统处理业务逻辑,这样不仅可以处理
- 关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题
何必如此
jsp超链接文件下载窗口
生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourc
- 【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析
bit1129
cluster
在分析源代码之前,首先对Standalone Cluster Mode的资源调度有一个基本的认识:
首先,运行一个Application需要Driver进程和一组Executor进程。在Standalone Cluster Mode下,Driver和Executor都是在Master的监护下给Worker发消息创建(Driver进程和Executor进程都需要分配内存和CPU,这就需要Maste
- linux上独立安装部署spark
daizj
linux安装spark1.4部署
下面讲一下linux上安装spark,以 Standalone Mode 安装
1)首先安装JDK
下载JDK:jdk-7u79-linux-x64.tar.gz ,版本是1.7以上都行,解压 tar -zxvf jdk-7u79-linux-x64.tar.gz
然后配置 ~/.bashrc&nb
- Java 字节码之解析一
周凡杨
java字节码javap
一: Java 字节代码的组织形式
类文件 {
OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组
}
&nbs
- java各种小工具代码
g21121
java
1.数组转换成List
import java.util.Arrays;
Arrays.asList(Object[] obj); 2.判断一个String型是否有值
import org.springframework.util.StringUtils;
if (StringUtils.hasText(str)) 3.判断一个List是否有值
import org.spring
- 加快FineReport报表设计的几个心得体会
老A不折腾
finereport
一、从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度。否则每次设计时模板均要从远程读取数据,速度相当慢!!
二、找一个富文本编辑软件(如NOTEPAD+)编辑SQL语句,这样会很好地检查语法。有时候带参数较多检查语法复杂时,结合FineReport中生成的日志,再找一个第三方数据库访问软件(如PL/SQL)进行数据检索,可以很快定位语法错误。
- mysql linux启动与停止
墙头上一根草
如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inin
- Spring中事务管理浅谈
aijuans
spring事务管理
Spring中事务管理浅谈
By Tony Jiang@2012-1-20 Spring中对事务的声明式管理
拿一个XML举例
[html]
view plain
copy
print
?
<?xml version="1.0" encoding="UTF-8"?>&nb
- php中隐形字符65279(utf-8的BOM头)问题
alxw4616
php中隐形字符65279(utf-8的BOM头)问题
今天遇到一个问题. php输出JSON 前端在解析时发生问题:parsererror.
调试:
1.仔细对比字符串发现字符串拼写正确.怀疑是 非打印字符的问题.
2.逐一将字符串还原为unicode编码. 发现在字符串头的位置出现了一个 65279的非打印字符.
 
- 调用对象是否需要传递对象(初学者一定要注意这个问题)
百合不是茶
对象的传递与调用技巧
类和对象的简单的复习,在做项目的过程中有时候不知道怎样来调用类创建的对象,简单的几个类可以看清楚,一般在项目中创建十几个类往往就不知道怎么来看
为了以后能够看清楚,现在来回顾一下类和对象的创建,对象的调用和传递(前面写过一篇)
类和对象的基础概念:
JAVA中万事万物都是类 类有字段(属性),方法,嵌套类和嵌套接
- JDK1.5 AtomicLong实例
bijian1013
javathreadjava多线程AtomicLong
JDK1.5 AtomicLong实例
类 AtomicLong
可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。
 
- 自定义的RPC的Java实现
bijian1013
javarpc
网上看到纯java实现的RPC,很不错。
RPC的全名Remote Process Call,即远程过程调用。使用RPC,可以像使用本地的程序一样使用远程服务器上的程序。下面是一个简单的RPC 调用实例,从中可以看到RPC如何
- 【RPC框架Hessian一】Hessian RPC Hello World
bit1129
Hello world
什么是Hessian
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary p
- 【Spark九十五】Spark Shell操作Spark SQL
bit1129
shell
在Spark Shell上,通过创建HiveContext可以直接进行Hive操作
1. 操作Hive中已存在的表
[hadoop@hadoop bin]$ ./spark-shell
Spark assembly has been built with Hive, including Datanucleus jars on classpath
Welcom
- F5 往header加入客户端的ip
ronin47
when HTTP_RESPONSE {if {[HTTP::is_redirect]}{ HTTP::header replace Location [string map {:port/ /} [HTTP::header value Location]]HTTP::header replace Lo
- java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/
写了个java版的
public class GreatestLeftRightDiff {
/**
* Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。
* 求所有数对之差的最大值。例如在数组
- mongoDB 索引
开窍的石头
mongoDB索引
在这一节中我们讲讲在mongo中如何创建索引
得到当前查询的索引信息
db.user.find(_id:12).explain();
cursor: basicCoursor 指的是没有索引
&
- [硬件和系统]迎峰度夏
comsci
系统
从这几天的气温来看,今年夏天的高温天气可能会维持在一个比较长的时间内
所以,从现在开始准备渡过炎热的夏天。。。。
每间房屋要有一个落地电风扇,一个空调(空调的功率和房间的面积有密切的关系)
坐的,躺的地方要有凉垫,床上要有凉席
电脑的机箱
- 基于ThinkPHP开发的公司官网
cuiyadll
行业系统
后端基于ThinkPHP,前端基于jQuery和BootstrapCo.MZ 企业系统
轻量级企业网站管理系统
运行环境:PHP5.3+, MySQL5.0
系统预览
系统下载:http://www.tecmz.com
预览地址:http://co.tecmz.com
各种设备自适应
响应式的网站设计能够对用户产生友好度,并且对于
- Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)
darrenzhu
jms事务承认MQacknowledge
JMS Message Delivery Reliability and Acknowledgement Patterns
http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/
Transaction and redelivery in
- Centos添加硬盘完全教程
dcj3sjt126com
linuxcentoshardware
Linux的硬盘识别:
sda 表示第1块SCSI硬盘
hda 表示第1块IDE硬盘
scd0 表示第1个USB光驱
一般使用“fdisk -l”命
- yii2 restful web服务路由
dcj3sjt126com
PHPyii2
路由
随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法。
在实践中,你通常要用美观的URL并采取有优势的HTTP动词。 例如,请求POST /users意味着访问user/create动作。 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示
- MongoDB查询(4)——游标和分页[八]
eksliang
mongodbMongoDB游标MongoDB深分页
转载请出自出处:http://eksliang.iteye.com/blog/2177567 一、游标
数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效控制,从shell中定义一个游标非常简单,就是将查询结果分配给一个变量(用var声明的变量就是局部变量),便创建了一个游标,如下所示:
> var
- Activity的四种启动模式和onNewIntent()
gundumw100
android
Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
<acti
- 攻城狮送女友的CSS3生日蛋糕
ini
htmlWebhtml5csscss3
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>攻城狮送女友的CSS3生日蛋糕-柯乐义<
- 读源码学Servlet(1)GenericServlet 源码分析
jzinfo
tomcatWebservlet网络应用网络协议
Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口。在Servlet接口中定义了5个方法,其中有3个方法是由Servlet 容器在Servlet的生命周期的不同阶段来调用的特定方法。
先看javax.servlet.servlet接口源码:
package
- JAVA进阶:VO(DTO)与PO(DAO)之间的转换
snoopy7713
javaVOHibernatepo
PO即 Persistence Object VO即 Value Object
VO和PO的主要区别在于: VO是独立的Java Object。 PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。
实际上,这个VO被用作Data Transfer
- mongodb group by date 聚合查询日期 统计每天数据(信息量)
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
/* 1 */
{
"_id" : ObjectId("557ac1e2153c43c320393d9d"),
"msgType" : "text",
"sendTime" : ISODate("2015-06-12T11:26:26.000Z")
- java之18天 常用的类(一)
Luob.
MathDateSystemRuntimeRundom
System类
import java.util.Properties;
/**
* System:
* out:标准输出,默认是控制台
* in:标准输入,默认是键盘
*
* 描述系统的一些信息
* 获取系统的属性信息:Properties getProperties();
*
*
*
*/
public class Sy
- maven
wuai
maven
1、安装maven:解压缩、添加M2_HOME、添加环境变量path
2、创建maven_home文件夹,创建项目mvn_ch01,在其下面建立src、pom.xml,在src下面简历main、test、main下面建立java文件夹
3、编写类,在java文件夹下面依照类的包逐层创建文件夹,将此类放入最后一级文件夹
4、进入mvn_ch01
4.1、mvn compile ,执行后会在