Android
文章平均质量分 85
somebot
这个作者很懒,什么都没留下…
展开
-
我的Opencv4Android添加V4L2支持的移植记录(1)
博主QQ:1356438802引言前面几篇文章我已经在Windows / Ubuntu / Android 三个平台成功安装了opencv的使用/编程环境,但是我需要在android平台使用usb video camera(即UVC)。当然在Ubuntu上,默认编译出来的opencv库本身就支持V4L2(UVC的操作API函数集),而Windows是将UVC纳入了DirectShow原创 2016-07-04 09:35:21 · 5205 阅读 · 2 评论 -
Android 真机测试 INSTALL_FAILED_INSUFFICIENT_STORAGE 解决方法
今天回到家,打开eclipse,run as androd application,然后报错:Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE无论我怎么搞都没用,安装不了。气死我了!前几天还好好的。后来终于找到解救办法了。----------------------------------------原创 2015-11-17 21:56:40 · 754 阅读 · 0 评论 -
豆浆机改装记(8): Fragment测试
前一篇文章提到,我需要用Frament进行页面跳转。这里主要有三个地方需要注意:1. public class MainActivity extends FragmentActivityMainActivity需继承自FragmentActivity,否则没有Fragment管理功能。2.FragmentTransactiongetSup原创 2015-11-14 12:43:08 · 719 阅读 · 0 评论 -
Android inflater 用法
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutI转载 2015-11-14 11:53:11 · 647 阅读 · 0 评论 -
豆浆机改装记(7): 关于UI界面的构思
回过头一看,竟然一个月了,这个月公司项目有点紧耽误了,一会儿搞Android平台的AV in视频输入,一会儿又搞微型投影仪,投影仪方面暂时卡住了,就继续我的豆浆机改装吧。前面豆浆机改装记(5)我们已经把BLE的基本功能实现了,我们可以连接到BLE主机设备,然后查看它开放的每个service信息(当然文章中还没有把displayGattServices这个函数调通,这个我们后面再原创 2015-11-14 10:33:22 · 1200 阅读 · 1 评论 -
Android:layout_gravity和android:gravity的区别
1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件内的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左转载 2015-10-23 09:02:52 · 523 阅读 · 0 评论 -
Android: LinearLayout布局和其嵌套运用举例
==========================main.xml 看mars老师的视频学习安卓里面的布局部分,做的样例,显摆一下,全部都是在main.xml里面配置的。==========================[html] view plaincopyxml ver转载 2015-10-23 08:44:17 · 1092 阅读 · 0 评论 -
Android layout_weight体验(实现按比例显示)
在android开发中LinearLayout很常用,LinearLayout的内控件的android:layout_weight在某些场景显得非常重要,比如我们需要按比例显示。android并没用提供table这样的控件,虽然有TableLayout,但是它并非是我们想象中的像html里面的table那么好用,我们常用ListView实现table的效果,但是列对齐确比较麻烦,现在用Linear转载 2015-10-22 14:53:31 · 520 阅读 · 0 评论 -
Android布局--Android fill_parent、wrap_content和match_parent的区别
三个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础的布局比精确地指定视图范围更加方便。1)fill_parent设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。2) wrap_content原创 2015-10-22 14:37:18 · 467 阅读 · 0 评论 -
Andorid 布局layout_margin和padding分析
很长时间对于margin和padding的作用区别模糊,不知道有什么区别。这次经过试验终于搞清楚了:margin是控件或者布局的整体区域,相对于父布局以及周围控件和布局的上下左右的距离。padding是当前控件或者布局的有效区域(比如下图中红色的文本输入框的输入区域),相对于控件或者布局的整体区域的边界的上下左右的距离。布局文件如下:看这个标识图则一目了原创 2015-10-22 17:42:59 · 19465 阅读 · 0 评论 -
豆浆机改装记(6): Android BLE 开发阶段总结
技术交流QQ:1356438802欢迎留言!^_^ 低功耗蓝牙包括的术语及概念:如上图所示,使用低功耗蓝牙可以包括多个Profile,一个Profile中有多个Service,一个Service中有多个Characteristic,一个Characteristic中包括一个value和多个Descriptor。Android中进行蓝牙原创 2015-10-20 17:19:06 · 836 阅读 · 0 评论 -
java list三种遍历方法性能比较
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码如下:[java] view plaincopypackage com.hisense.tiger.list; impo转载 2015-10-20 15:00:06 · 517 阅读 · 0 评论 -
豆浆机改装记(3): Android BLE 蓝牙开发略解
再附上一篇更详细点的BLE开发介绍,有这几篇文章的铺垫,就可以开始BLE开发啦!=============================================================================Android 蓝牙4.0开发 1、 权限和相关属性“android:required="true"表示apk只有在具有bl转载 2015-10-19 14:42:29 · 1886 阅读 · 0 评论 -
豆浆机改装记(1): Android BLE框架
Android4.3 规范了BLE的API,但是直到目前的4.4,还有些功能不完善。在BLE协议中,有两个角色,周边(Periphery)和中央(Central);周边是数据提供者,中央是数据使用/处理者;在iOS SDK里面,可以把一个iOS设备作为一个周边,也可以作为一个中央;但是在Android SDK里面,直到目前最新的Android4.4.2,Android手机只能作为中央来使用原创 2015-10-19 14:11:43 · 1195 阅读 · 0 评论 -
Android下怎么使用LDD查看依赖库
Android下没有ldd可以使用,在进行ndk开发的时候,检查库的依赖项特别麻烦。有两个解决方案:1、将linux的的ldd移植过去。因为android也是基于linux的,所以将ldd移植过去是完全可能的,google一下吧,这不是本文的重点;2、现成的。ndk已经提供了工具,在ubuntu下执行locate readelf,你会发现有这些输出:/mydroid/external/原创 2016-01-22 14:01:33 · 6404 阅读 · 2 评论 -
如何在Android下使用JNI
http://blog.csdn.net/xnwyd/article/details/70863841.引言我们知道,Android系统的底层库由c/c++编写,上层Android应用程序通过Java虚拟机调用底层接口,衔接底层c/c++库与Java应用程序间的接口正是JNI(JavaNative Interface)。本文描述了如何在ubuntu下配置Andr转载 2015-04-05 15:04:07 · 697 阅读 · 0 评论 -
我的Opencv4Android添加V4L2支持的移植记录(2)
博主QQ:1356438802在前一篇文章的基础上,对app增加实时预览功能,源码如下:http://download.csdn.net/detail/luoyouren/9568587原创 2016-07-06 12:02:44 · 1685 阅读 · 2 评论 -
我的Opencv4Android添加V4L2支持的移植记录(3)
博主QQ:1356438802本文实验平台:Eclipse + Opencv 2.4.10 + MTK Android 4.4平板(这一直是我的Android实验平台)可能各位看官,看到前面的文章会觉得很凌乱,一会儿这个平台,一会儿那个平台。其实我的主要思路就是:opencv中的任何一个功能,首先在windows上验证成功,再到Ubuntu,然后到And原创 2016-07-13 11:24:17 · 2474 阅读 · 0 评论 -
我的Opencv4Android添加V4L2支持的移植记录(4)
博主QQ:1356438802这次我们来对《我的Opencv4Android添加V4L2支持的移植记录(2)》的实时预览进行一些优化。先来看那篇文章中源码的ImageProc.cpp文件#include "ImageProc.h"#include "cv.h"#include "highgui.h"#include "opencv2/core/core.hp原创 2016-08-04 11:56:48 · 1059 阅读 · 0 评论 -
USB Camera V4L2 视频录制——Android(1)
博主QQ:1356438802前传:前面研究了大半年的OpenCV开源库,其实也是断断续续的研究哈,本来是要做USB Camera图像识别的。但是公司有个项目要做USB Camera视频录制,所以先看了下OpenCV对于USB Camera录像的支持,在windows平台是可以的《win7_64bits下QT使用openCV库(3)》,在Ubuntu也是可以的《我的Ubuntu原创 2016-08-04 18:10:00 · 8220 阅读 · 11 评论 -
Android在MediaMuxer和MediaCodec录制视频示例 - audio+video
在Android多媒体类,MediaMuxer和MediaCodec这是一个相对年轻,他们是JB 4.1和JB 4.3据介绍。前者被用来产生一个混合的音频和视频的多媒体文件。的缺点是,现在可以只支持一个audio track而一个video track,而唯一支持mp4出口。然是新生事物,相信之后的版本号应该会有大的改进。MediaCodec用于将音视频进行压缩编码,它有个比較牛X转载 2016-08-06 12:01:52 · 18892 阅读 · 16 评论 -
Camera使用setPreviewCallbackWithBuffer优化内存
在直接设置mCamera.setPreviewCallback(this)方法后,启动预览,每产生一帧都会回调public void onPreviewFrame(byte[] data, Camera camera) 方法,看下面log:04-01 17:17:11.987 24768-24780/com.netease.carrecorder D/Camera-JNI: Allocat转载 2016-08-06 12:02:41 · 6175 阅读 · 3 评论 -
Android MediaRecorder 后台视频录制
题记:记录下这几天一直在苦恼的一件事,心情各种起伏。先是有个变态的客户(嗯,真心觉得)提出原有的录音不够,还要有录像,不过是悄悄的,后台录像,懂的,不能在软件界面上面展示出来;这不是不道德的吗?可是木办法,咱只是做事的,我只能说从技术上肯定是可行,但是道德上,感觉挺混蛋的。于是开始学习看如何做。由于使用API提供的自定义视频,必须要按照那一套写法,感觉中间最关键还是是必须要有surfaceview转载 2016-08-06 11:57:02 · 3873 阅读 · 3 评论 -
Android开发之多线程编程Thread和Runnable使用
Android可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;前者只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是Java中一个类只能继承一个父类,这是这种方式的局限性,后者只需要实现一个接口而已,Java中可以实现多个接口。继承Thread类[java] view转载 2016-08-02 15:42:31 · 914 阅读 · 0 评论 -
Android开发:如何安全的中止一个自定义线程Thread
经研究,我推荐这种写法:/*自定义线程*/ class MyThread implements Runnable{ public void run() { // TODO Auto-generated method stub // 定义自己的变量 while(!Thread.currentThread().isInte转载 2016-08-05 10:42:49 · 670 阅读 · 0 评论 -
Android线程操作类(暂停、重新开启、停止)
场景: 在程序中如果需要在后台长时间做一件事情,比如联网获取数据等操作,就要用到线程。 但为了提高用户体验,有以下几点需要注意: 1、程序可见时线程开始运行; 2、程序不可见时线程暂停; 3、程序退出时停止线程; 以下根据我自己的程序提出一个公用的代码,大家可以把自己的业务逻辑套进去: Java代码 public class NetUt转载 2016-08-05 10:42:06 · 7595 阅读 · 0 评论 -
Android Java 线程暂停与继续
突然碰到一个问题,线程的暂停与继续,我想了想,去使用JDK给我们提供的suspend方法、interrupt方法??suspend()方法让这个线程与主线程都暂停了,谁来唤醒他们??明显这个不好用,要用的话,恐怕得另写唤醒线程了!interrupt方法,这个方法实际上只能中断当前线程!汗! 既然JDK解决不了偶的问题,偶只能自己写了! 这个时候想到了Ob转载 2016-08-05 10:40:42 · 2933 阅读 · 0 评论 -
Android 在 SElinux下 如何获得对一个内核节点的访问权限
Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进转载 2016-06-30 10:57:05 · 1093 阅读 · 0 评论 -
Java SharedPreferences的使用
SharedPreferences 是以键值对来存储应用程序的配置信息的一种方式,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不 能在不同的包之间使用。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data//shares_prefs下。转载 2015-10-21 10:57:43 · 1682 阅读 · 0 评论 -
豆浆机改装记(5): Android BLE 编码入门 稍进一步
在前一篇文章中,我们已经能够搜索到我们周围的Peripheral BLE设备了,并且可以获取到它的一些信息,名称,信号强度,广播数据。现在我们再稍微进一步,设置一个按钮,当搜索到设备后,点击按钮,在按钮事件处理中向它发起连接——connect。代码如下,并附上整个源码包:链接:http://pan.baidu.com/s/1kThbqaN 密码:ur8apackage com.原创 2015-10-19 16:22:09 · 1485 阅读 · 0 评论 -
Android车载导航的一些困境
车载导航从最初的用解码芯片,过渡到用WinCE系统,已经形成了一个较大的产业。车载导航使用上的一些大原则,基本上被固定了下来。现在WinCE走到了尽头,Android车载导航开始发力,但因为Android系统的使用习惯,与传统车载的使用习惯有着较大的不同,在设计的时候,往往会遇到一些尴尬,既要保持原有的使用习惯,又要保留Android的优点。都要兼顾的话往往是技术上要费很大功夫而且带来使用上的困惑转载 2015-05-09 09:16:56 · 1162 阅读 · 0 评论 -
Android学习(5)电话拨号器
观看的视频《8天快速掌握Android视频》其是基于android 2.2的框架编写,只有一个MainActivity,而我现有的开发环境是Android 4.4.2,如下图:代码:MainActivitypackage com.lawrence.phone;import android.os.Bundle;import android.sup原创 2015-04-28 09:46:59 · 629 阅读 · 0 评论 -
Android学习(9)音频管理AudioManager-4
转载自:http://mobile.51cto.com/android-309321.htmAndroid音乐编程:管理音频焦点2011-12-23 10:17 zhourunsheng 润物无声的博客 我要评论(0) 字号:T | T因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放音乐,Android转载 2015-05-08 15:45:21 · 631 阅读 · 0 评论 -
Android学习(8)音频管理AudioManager-1
近期要匹配部分第三方应用到系统中,但是涉及到音频部分还存在逻辑的BUG。因此重点关注了下音频管理的部分代码,写一部分目前已经理解的部分。 首先要先阐述下为什么会做现在的工作,起因就是系统中已经有了要调用声音的应用,所以同时再运行另外的需要用到声音的应用时必须要有一个优先级来约束这些声音的音量大小及先后顺序。因此需要对这部分音频管理做逻辑上的处理,使其能协调的发出声音转载 2015-05-08 15:44:30 · 871 阅读 · 0 评论 -
Android学习(6)音频管理AudioManager-3
上面两篇简单的分析了,android系统中FrameWork中对于音量的调节的部分代码,可能有些更深入的东西并没有涉及,因为初次尝试分析,并不是所有东西都能完全明白和透彻的理解,所以暂时只能将我所了解到并用到的部分做了解析。 这篇主要想解析下在AudioManager中对于音频竞争机制的部分内容和使用方式。 首先来说下这中竞争机制的产生原因,根据我的转载 2015-05-08 15:39:46 · 1527 阅读 · 0 评论 -
Android学习(7)音频管理AudioManager-2
上篇里面提到了声音调整的两种操作,接下来就要具体分析下音量调节的大概步骤,分别涉及到两部分: android\frameworks\base\media\java\android\media\AudioService.java android\frameworks\base\media\java\android\media\IAudioSer转载 2015-05-08 15:40:31 · 1179 阅读 · 0 评论 -
Android学习(4)Button的OnClickListener的三种实现方法
onclick事件的定义方法,分为三种,分别为在xml中进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口三种方式。代码分别如下:1. xml指定onclick事件,这种方式比较适用于指定的button,能使java代码相对简化一些:xml文件中:[html] view转载 2015-04-25 16:26:28 · 1263 阅读 · 0 评论 -
android 国外网站
http://www.androidboards.com/http://www.androidev.com/http://androidcommunity.com/http://anddev.org/http://www.androiddeveloper.comhttp://www.androidmobileforum.comhttp://www.o原创 2015-04-09 09:39:01 · 766 阅读 · 0 评论 -
android学习(1)——TextView属性
android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。android:bufferType指定getText()方式取得的文本类别。选项edi原创 2015-04-09 09:40:01 · 527 阅读 · 0 评论 -
Android bionic缺失pthread_cancel的解决方法
http://www.linuxidc.com/Linux/2012-06/63350.htm在native code中使用多线程好处多多,但是Android的bionic并没有完全实现标准POSIX线程库的所有API,例如pthread_cancel()。但是google这样做肯定有原因,被cancel的thread不一定已经把自己拥有的资源释放掉,因此很可能带来内存泄露,锁转载 2015-04-08 12:53:17 · 1621 阅读 · 0 评论