z19

本文档汇总了Android开发中的一些实用技巧,包括触控事件模拟、SD卡插拔监听、线性布局权重设置、模拟器界面更换及各种测试方法等。
MotionEvent obtain(MotionEvent other) ,没有构建器,只有静态工厂方法

http://www.2cto.com/kf/201109/102655.html
Instrumentation发送键盘鼠标事件:Instrumentation提供了丰富的以send开头的函数接口来实现模拟键盘鼠标,如下所述:
sendCharacterSync(int keyCode) //用于发送指定KeyCode的按键
sendKeyDownUpSync(int key) //用于发送指定KeyCode的按键
sendPointerSync(MotionEvent event) //用于模拟Touch
sendStringSync(String text) //用于发送字符串
Instrumentation inst=new Instrumentation();
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 10, 10, 0));




FloatMath 优化无极限
TimingLogger log time 功能
android util package and os package


只要不uninstall 只是install ,以前的cache 还可以用。


snapshot 可以加快模拟器启动
但是也会遇到一种情况,不管你怎么修改源文件都无法应用你的修改,程序还是跟上一次关闭时的状态一样。原因可能是snapshot引起的。


http://www.girlcoding.com/category/mobileprogramming/android/
Tinker:Android的SD卡插拔广播
最近项目里面需要监听SD卡的插拔,网上搜广播的时候,很多东西都没提到。我将这些东西记录下来,以备后用。
1. 如果是单个Activity监听广播,则在Activity的onCreate方法里面,用下面的代码注册广播
IntentFilter iFilter = new IntentFilter();iFilter.addAction(Intent.ACTION_MEDIA_EJECT);iFilter.addDataScheme("file");registerReceiver(mBroadcastReceiver ,iFilter);
2. 如果是整个程序监听广播,则在Android manifest用下面的方法注册广播
<receiver android:name=".activities.widget.UsbBroadCastReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.MEDIA_MOUNTED"/><action android:name="android.intent.action.MEDIA_EJECT"/><data android:scheme="file"/></intent-filter></receiver>
3.如果广播别别的程序截获,导致你无法收到广播,给intent-filter加上一个android:priority="1000"的属性就行,添加位置,参照上面的代码。
4. 我的项目里面是整个程序监听广播,
①Android Manifest的代码如下:
<receiver android:name=".activities.widget.UsbBroadCastReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.MEDIA_MOUNTED"/><action android:name="android.intent.action.MEDIA_EJECT"/><data android:scheme="file"/></intent-filter></receiver>
Android Manifest一定要在intent-filter注意加上<data android:scheme=”file”>,否则无法监听到SD卡插拔广播,如果你在Activity里面用代码注册广播,那一定要加iFilter.addDataScheme("file"),具体原因我还没闹明白,等我闹明白时补上




线性布局LinearLayout也支持给每个单独的子视图分配一个权重。这个属性分配一个“重要性”数值给一个视图,并允许它扩展来填充父视图的任何剩余空间。子视图可以指定一个整型权重值,然后任何这个视图组中的剩余空间将按照子视图声明的比重来分配给它们。缺省权重是0。比如,如果有三个文本框,其中两个声明权重为1,而另一个未给定数值(0),这第三个没有权重的文本框将不会增长而只是占据其内容所要求的空间。其它两个将均匀分配剩余的空间。如果把第三个控件权重改为2,那意味着它被声明为比其它两个“更为重要”,因此它将占据整个空间的一半,而前面两个均分剩下的空间。




如何更换Android模拟器界面 ,不用缺省的太丑陋
http://blog.youkuaiyun.com/iefreer/article/details/4616025


压力测试,快速(多线程执行),大量数据处理能力。
交互测试,
新界面测试,不可以不断的打开一个dialog (设计的时候,不让他连续调整,只有回到主界面,才可以,如果有连续跳转,可以搞个计数器,到了一定比例,不允许再加)
输入框测试。
按钮连按测试


中途改变配置处理。




http://baike.baidu.com/view/470808.htm SMART原则
以前的goal 目标。
以前的工作,开会,分析问题回邮件,编码。没有分清主次。
表现自己。网状结构。
前一阶段 编码。口头上,然后再推。


Runtime.getRuntime().exec("sendevent /dev/input/event0 1 102 1");


home 键 拦截
http://blog.youkuaiyun.com/yiyaaixuexi/article/details/6604430
把系统权限禁止掉
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>


Android地图和定位学习总结
http://www.cnblogs.com/zhangchaoyang/articles/1799531.html


触感反馈
v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
v.playSoundEffect(SoundEffectConstants.CLICK);


click 有 ,touch 无


快图浏览


不要知足于短期记忆和API 细节。
要注意概念原理,是否可以做,如何研究。


Android权限机制总结与常见权限不足问题分析
http://blog.youkuaiyun.com/Zengyangtech/article/details/5749999
http://hi.baidu.com/donghaozheng/blog/item/30a00d4f9fca873baec3ab69.html


java 权限设置和 android


关机,重启,install uninstall 其他程序。监视这些动作。
关屏,锁屏。关网 网络改变




http://blog.youkuaiyun.com/freshman_studing/article/details/6646253
android应用中监听按下HOME键
onUserLeaveHint() use press home will call ,but an incoming phone call will not call
http://www.blogjava.net/lihao336/archive/2010/11/22/338677.html
这正是我想要的,这样,在启动activity时,往intent中加上这个flag,onUserLeaveHint就不会再被调用了,hoory...
FLAG_ACTIVITY_NO_USER_ACTION ,只有在按home 键的时候才会调用 onUserLeaveHint。
可以通过"singleTask" 和 onNewIntent(Intent intent) 来监视 Home 键
注意: 当按Home键退出,再长按Home键进入(recent ),此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent
onUserLeaveHint 在 protected 方法,在public 找不到




recent 调用




intent 和系统交互, 以及管理自己activity (主要flag )
category 是分类 ,home ,browsable 。
action 有activity 和 broadcast 两种
intent flag
可以管理task (顺序,清楚,新task ),可以管理不同的入口(是否从Home ,recent ,background )
甚至权限,
FLAG_ACTIVITY_REORDER_TO_FRON 改变顺序
FLAG_FROM_BACKGROUND


ACTION_DEVICE_STORAGE_LOW Broadcast Action: A sticky broadcast that indicates low memory condition on the device
This is a protected intent that can only be sent by the system.
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE


可以每一次直接去读取信息,而不是设个变量


public static final String ACTION_MEDIA_SCANNER_SCAN_FILE
Since: API Level 1
Broadcast Action: Request the media scanner to scan a file and add it to the media database. The path to the file is contained in the Intent.mData field.


主动要求的广播


intent copy data


Content URI Summary


HttpClient 设计模式


分析工具,重复动作容易发现问题。
根据类名check 对象个数是否异常。
关闭后查看是否还有对象存在,不过一般不是list ,没有问题。
在手机上可以直接打开,有时候报没有写权限




可以点击下面显示更多,可以根据class (根据名字 )显示 object ,然后再显示 GC path
why space activity still exist


浏览的欲望


还有3个入口
直接杀程序
android.os.Process.killProcess(android.os.Process.myPid());




http://blog.youkuaiyun.com/maxleng/article/details/5490770
Android 核心分析


RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片.
Alarm 闹钟是 android 系统中在标准 RTC 驱动上开发的一个新的驱动,提供了一个定时器用于把设备从睡眠状态唤醒,当然因为它是依赖 RTC 驱动的,所以它同时还可以为系统提供一个掉电下还能运行的实时时钟


programe
debug log ,programe , view debug ,memory debug ,system dump . profile.
static check
test




第三方 类库。






优化
第一个 滚动停止后




recent task , 管理,读取 task 。task 的设计目的。
Handle 进程


SQLiteQuery
SQLiteProgram
From class android.database.sqlite.SQLiteClosable


// Setup the list of columns
int columnCount = mQuery.columnCountLocked(); 找不到


SQLiteDatabase.CursorFactory
act Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery, String editTable, SQLiteQuery query)
03-14
<think>好的,我现在要处理用户关于MH-Z19二氧化碳传感器的技术参数和应用的问题。首先,我需要仔细阅读用户提供的引用内容,找出相关的信息点。 首先,用户提到了引用1到5,其中引用2、3、4、5都与MH-Z19系列传感器相关。需要确认各引用的具体参数。例如,引用3提到MH-Z19C的工作电压是5V,预热时间1分钟,通信方式有UART和PWM。而引用4则指出预热时间约两分钟,输出值在预热期间无效。这里可能存在型号差异,比如MH-Z19B和MH-Z19C的不同,需要注意区分。 接着,技术参数部分需要整合各个引用中的信息。比如测量范围,引用2提到高精度测量,但具体范围可能需要其他引用补充。引用3提到MH-Z19C的测量范围是0-5000ppm,这可能是一个关键参数。工作电压方面,引用3和5都提到5V,但引用5中的Arduino代码可能使用的是模拟输入,但实际MH-Z19B可能需要串口通信,这里可能存在混淆,需要确认传感器型号对应的通信方式。 应用场景方面,引用2和3提到了智慧农业、室内空气质量监测,引用4提到室内环境测试和呼气测试,说明适用于需要CO2监测的多种环境。技术原理部分,引用2提到使用NDIR技术,这需要准确描述。 另外,用户可能混淆了不同型号,比如MH-Z19B和MH-Z19C,需要指出它们的共同点和差异。例如,预热时间在引用3中是1分钟,而引用4是2分钟,这可能是因为不同型号或测试条件不同,需注明。 最后,生成相关问题时要覆盖技术参数、应用场景、使用注意事项和与其他传感器的比较,确保问题有针对性,帮助用户深入理解。</think>### MH-Z19二氧化碳传感器技术参数及应用 #### **一、技术参数** 1. **测量范围** MH-Z19系列传感器可检测$0-5000\ ppm$范围的CO₂浓度[^3][^4]。 2. **工作电压** 工作电压为$5\ V$直流电源,兼容Arduino等开发板[^3][^5]。 3. **预热时间** 传感器需要预热时间以确保数据稳定: - MH-Z19B:约$1$分钟[^2] - MH-Z19C:约$2$分钟(初始输出值为$500\ ppm$,预热期间无效) 4. **通信方式** - **UART串口**:通过TTL电平直接与微控制器通信[^3] - **PWM输出**:通过脉宽调制信号传输浓度值[^3] (注:不同型号可能仅支持其中一种方式) 5. **精度与原理** - 采用**非分散式红外(NDIR)技术**,测量精度高[^2] - 典型误差范围:±$(50\ ppm + 3\%\ \text{读数})$[^4] 6. **环境适应性** - 工作温度:$0-50^\circ C$[^3] - 避免强光直射和遮挡传感器表面的白色滤光膜 --- #### **二、应用场景** 1. **室内空气质量监测** - 检测办公室、教室等密闭空间的CO₂浓度,联动通风系统。 2. **智慧农业** - 温室大棚中监测CO₂浓度,优化植物光合作用条件[^3]。 3. **工业安全** - 工厂或矿井中实时监测CO₂泄漏,触发报警装置。 4. **健康设备** - 集成到呼吸训练设备中,分析人体呼气中的CO₂水平。 --- #### **三、典型开发案例** 1. **Arduino集成** ```python # 示例代码(基于串口通信) void setup() { Serial.begin(9600); // 初始化串口 } void loop() { int co2 = analogRead(A0); // 读取传感器模拟信号 Serial.println(co2); // 输出CO₂浓度值 } ``` (注:实际需根据传感器型号选择UART或PWM通信方式) 2. **报警系统设计** 当浓度超过$1000\ ppm$时,触发蜂鸣器或LED报警。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值