![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android应用
小二人
车机系统及应用软件开发。
展开
-
View的平移、缩放、旋转以及位置、坐标系
Android开发中,经常会接触到自定义View,而与View绘制相关的一组组方法很容易让人混淆……现在个人简单整理,希望能够让大家有个清晰的认识1、移动View内容的相关变量和方法 (注意:是移动View所包含的内容,而非View本身)View相关成员变量//View的内容相对于View在水平方向上的偏移量,以像素为单位//当mScrollX为正数时,内容相对于View从右向左...转载 2020-07-16 08:27:58 · 517 阅读 · 0 评论 -
Android中内容观察者的使用---- ContentObserver类详解
前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对ContentObserver做下总结。ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它...转载 2020-07-16 08:27:02 · 591 阅读 · 0 评论 -
Android WebView 的使用
1.1 WebView概述Android WebView在Android平台上是一个特殊的View,它能用来显示网页,这个WebView类可以被用来在app中仅仅显示一张在线的网页,当然还可以用来开发浏览器。WebView内部实现是采用渲染引擎(WebKit)来展示view的内容,提供网页前进后退、网页放大、缩小、搜索等功能。WebView是一个基于WebKit引擎、展现Web页面的控件,Android的WebView在低版本和高版本采用了不同的WebKit版本内核。1.2 WebVie...转载 2020-07-16 08:24:35 · 283 阅读 · 0 评论 -
Android Studio恢复误操作
1.右键自己的项目,点击【Local History】下的【Show History】2.在弹出的窗口中,左边是 操作的时间,文件数量和操作类型,右边是操作的具体目录和文件3.这个时候就可以利用修改时间去找希望恢复的文件,右键该文件点击【Revert Selection】即可恢复...原创 2020-06-10 18:45:04 · 914 阅读 · 1 评论 -
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。(2)在try块中有System.exit(0);这样的语句,System.exit(0);是终止J转载 2020-05-26 08:19:12 · 164 阅读 · 0 评论 -
Android 取得系统开机的时间
SystemClock.elapsedRealtime(); // 系统从启动到现在的时间,单位:msSystemClock.uptimeMillis(); // 系统从启动到当前处于非休眠期的时间,单位:ms原创 2020-05-26 08:13:00 · 534 阅读 · 0 评论 -
service中显示一个dialog
转自:https://blog.csdn.net/huxueyan521/article/details/8954844dialog是依附于activity存在的。但是app中经常需要使用以下的情况,在service中做一些后台操作,在某个临界条件满足时,显示一个dialog告知用户。这时dialog无法直接从service中启动起来,会报出android.view.WindowManager$B...转载 2018-07-11 19:53:51 · 301 阅读 · 0 评论 -
Android使用WindowManager
由于业务需要,现在需要用一个自定义的View来弹出覆盖住状态栏,并且设置一定时间后可以自动消失,同时在这个View中,也可以使用按钮来关闭View,使它消失。现在从WindowManager开始入手,先是得到WindowManager实例,然后在设置LayoutParams的属性,这个LayoutParams比较坑爹,属性非常多,一开始就是因为属性设置错误无法实现覆盖状态栏效果。最后面把Layou...转载 2018-07-11 19:58:08 · 1022 阅读 · 0 评论 -
android权限GET_TASKS问题
Android L开始,Google开始对getRunningTasks和getRecentTasks等接口进行限制使用,默认情况下,普通的第三方应用(非系统应用)不能使用该接口。之前,只要声明android.permission.GET_TASKS权限,开发的应用就可以使用getRunningTasks等接口。但从L开始,这种方式已经废弃,应用要使用该接口必须声明权限android.permis...原创 2018-08-18 16:06:17 · 38991 阅读 · 1 评论 -
android 程序自动捕获异常
(一) 前言各位亲爱的午饭童鞋,是不是经常因为自己的程序中出现未层捕获的异常导致程序异常终止而痛苦不已?嗯,是的。。 但是,大家不要怕,今天给大家分享一个东东可以解决大家这种困扰,吼吼!(二) UncaughtExceptionHandler接口这个接口,顾名思义,就是处理程序中没有处理的异常,而且是在系统抛出异常导致程序异常终止之前哦!那么,在Android里面怎么使用呢?(三) 怎...转载 2018-12-12 13:59:58 · 246 阅读 · 0 评论 -
android 实现一个ContentProvider对多张表进行操作
因为只有一个ContentProvider,所以在ContentProvider中就要区别多张表,很明确一下子就找到解决问题的切入点。下面的方法就是这样做的。也就是说authority只有一个,但Content_uri还是要有多个,因为要对应多张表。下面看代码:直接操作数据类DatabaseHelper跟前面是一样的DatabaseHelper.java[java] view plain copy...转载 2018-07-11 19:49:32 · 495 阅读 · 0 评论 -
Android透明的倒影,层叠的图片,渐变的颜色透明度
这里转载一个牛人的博客:http://www.cnblogs.com/tankaixiong/archive/2011/02/24/1964340.html 下面,是我参照他的博客实现的一个效果图。这个程序,在他的基础上进行了一些改良,但改良得不是很好,嘻嘻,等有空,继续研究。该实例下载路径:http://download.csdn.net/source/3275783 ...转载 2018-06-04 12:34:11 · 1756 阅读 · 0 评论 -
android字符串+数字变量方法之%1$s、%1$d的用法
作用:动态的拼接字符串,使代码更简洁,更易维护、易扩展。用法:1.整型: 比如:“他今年XX岁了”,这个具体XX岁可能需要从服务端取的,那我们可以这么写<string name="old">他今年%1$d岁了</string>12在程序中TextView tvOld = (TextView)findViewById(R.id.tv_old);tvOld.setText(...转载 2018-06-04 12:27:21 · 888 阅读 · 0 评论 -
代码编辑器背景颜色
颜色在这里向大家推荐豆沙绿,保护眼睛的说法虽未得到任何科学证实,但是确实看着柔和不少。下面是维基百科的介绍豆沙绿,是指一种类似豆沙的颜色色调。因其颜色观感柔和,故有网友称在电脑上阅读时采用此颜色为背景有利于保护视力(相较于白色等亮度、刺激性较高的颜色)。但此说法并未得到任何科学证实。豆沙绿的色调为:85 饱和度:123 亮度:205网页颜色 : #C7EDCCRGB值 : (199, 237, 2...转载 2018-05-03 20:35:32 · 5482 阅读 · 0 评论 -
android studio 无法使用搜狗输入法解决方案
搜遍网上的解决方案都没什么效果,结果搜狗输入法更新到最新的8.9版本就好了。。。。。原创 2018-05-03 20:33:30 · 1707 阅读 · 0 评论 -
写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
Jpge格式是图片压缩格式的一种,jpg就属于这其中一种;我们如需要将gps信息写入到图片中本身是比较简单的,获取图片句柄ExifInterface就可以了;但是我在做的过程中碰到了几个问题,解决之后便考虑将这一块写出来供大家参考。 写入GPS信息到jpeg格式的图片一共三个步骤,获取句柄,写入信息,验证写入信息第一步:获取句柄[java] view转载 2017-12-21 19:37:46 · 1930 阅读 · 0 评论 -
快速切换到主线程更新UI的几种方法
方法一: view.post(Runnable action)假如该方法是在子线程中textView.post(new Runnable() { @Override public void run() { textView.setText("更新textView"); //还可以更新其他的控件转载 2017-12-21 19:15:07 · 674 阅读 · 0 评论 -
Android 二维码 生成和识别(附Demo源码)
今天讲一下目前移动领域很常用的技术——二维码。现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。之前我就想了解二维码是如何工作,最近因为工作需要使用相关技术,所以做了初步了解。今天主要是讲解如何使用ZXing库,生成和识别二维码。这篇文章实用性为主,理论性不会讲解太多,有兴趣可以自己查看源码。1、ZXing库介绍 这里简单介绍一下ZXing...转载 2018-08-18 16:19:10 · 7083 阅读 · 0 评论 -
Android中使用MediaCodec硬件解码,高效率得到YUV格式帧,快速保存JPEG图片(不使用OpenGL)
特点以H.264编码分辨率1920x1080视频文件为例需要Android API 21 直接将视频解码为YUV格式帧,不经过OpenGL,不转换为RGB 对绝大多数设备和绝大多数视频编码格式,都可以解码得到NV21或I420格式帧数据 30ms内获得NV21或I420格式帧数据 10ms内将NV21或I420格式帧数据写入到文件 对得到的NV21格式帧数据,在110ms内完成J...转载 2018-09-19 19:29:26 · 3857 阅读 · 1 评论 -
Android 如何有效的解决内存泄漏的问题
前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题。在网上找了很多资料,有很多都是互相抄的,没有实际的作用。本文的内存泄漏检测工具是:LeakCanary github地址:https://github.com/square/leakcanary 什么是内存泄漏?内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内...转载 2018-09-19 19:41:27 · 140 阅读 · 0 评论 -
Android 写文件时掉电丢失内容
最近遇到了一个问题,做了一个检测4G的模块,检测的结果是写入到了sd卡中,如果有这个文件,下次再进来或者一键测试的时候就直接读取这个文件就行。但是工厂的测试人员总是反馈检测完没有这个文件,然后我这么怎么试怎么有。然后就很奇怪,就问了具体的测试流程,他们说只要检测成功,就立马掉电,然后换下一台。我仔细检查了代码,没毛病啊。这是怎么了,flush() 和 close() 都有操作啊。原先代码是这样的...转载 2019-09-18 17:39:05 · 884 阅读 · 0 评论 -
Android中的序列化和反序列化
概念正式的: 序列化:把对象转换为字节序列的过程称为对象的序列化。 反序列化:把字节序列恢复为对象的过程称为对象的反序列化。 通俗举栗 比如:现在我们都会在淘宝上买桌子,桌子这种很不规则不东西,该怎么从一个城市运输到另一个城市,这时候一般都会把它拆掉成板子,再装到箱子里面,就可以快递寄出去了,这个过程就类似我们的序列化的过程(把数据转化为可以存储或者传输的形式)。当买家收到货后,就需要...转载 2019-07-22 16:26:57 · 1980 阅读 · 0 评论 -
Android IntentService详解
为什么需要有IntentService:Android中的IntentService是继承自Service类的,在我们讨论IntentService之前,我们先想一下Service的特点: Service的回调方法(onCreate、onStartCommand、onBind、onDestroy)都是运行在主线程中的。当我们通过startService启动Service之后,我们就需要在Ser...转载 2019-07-22 16:25:05 · 207 阅读 · 0 评论 -
Android NDK - JNI中回调Java中的函数
在实际应用中,除了在JNI层对部分功能进行C++的实现,同时还会有在JNI中对Java函数的调用以实现某种逻辑的联通。在JNI中回调Java函数,实际上是通过反射机制来实现的,通过反射机制取得目标函数所在的类,以及其名称,通过NDK提供的接口在JNI层进行调用。JNI中调用Java函数的栗子TestFunction.javapackage com.test.jni;public c...转载 2019-07-22 16:22:24 · 433 阅读 · 0 评论 -
android 实现framework和底层C/C++通讯
最近接到一个需求,要在framework中添加一些上层接口给客户调用,然后在framework中调用C中的代码实现和硬件一些数据交互。framework和C交互肯定想到的使用jni,但是和硬件交互的时候需要执行一些shell命令,必须要root权限才能执行成功,如果在framework中使用jni,显然无法达到我们想要的效果,后来就换了种方式实现,使用localscoket来实现,在系统添加一个服...转载 2019-01-15 19:14:25 · 1037 阅读 · 0 评论 -
Android 中的Java跟C/C++的Binder通信
1、大家都知道Android中进程间的通信是通过binder来实现的,这里主要是讲代码中的简单实现。如果想了解binder的通信细节或实现原理,可以参考https://blog.csdn.net/jmq_0000/article/details/7349844。个人觉得这篇博客讲的还是很不错的。现在就开始demo的介绍,该demo主要是通过java传递文件路径给C++来实现删除该路径,目的是为了了...转载 2019-01-15 19:13:45 · 826 阅读 · 0 评论 -
【转】使用Android MediaCodec 硬解码延时问题分析
最近做项目用到Android native层的MediaCodec的接口对H264进行解码,通过在解码前和解码后加打印日志,发现解码耗时200多ms,和IOS的解码耗时10ms相比实在是延时好大。后来研究了两周也没能解决延时问题,很悲惨……不过还是将这过程中分析的思路记录下来,说不定以后万一灵感来了就解决了呢。 起初在https://software.intel.com/e...转载 2019-01-15 19:08:32 · 4524 阅读 · 2 评论 -
File Descriptor泄漏导致Crash: Too many open files
在实际的Android开发过程中,我们遇到了一些奇奇怪怪的Crash,通过sigaction再配合libcorkscrew以及一些第三方的Crash Reporter都捕获不到发生Crash的具体信息,十分头疼。然后我们通过Bugly上报的Java的CallStack观察发现这些Crash发现了一些共同的信息:看来是和OpenGL有关系,于是我们进一步对程序输出的log进行观察,又发现:...转载 2019-01-15 18:58:02 · 902 阅读 · 0 评论 -
Android平台程序崩溃的类型及原因列举
Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的。这里把Android平台程序崩溃的各种类型做一个简述和原因列举。1.ANR(可见ANR):发生场景:应用发生ANR。崩溃症状:系统弹出窗口询问用户选择“Force Close”或者“Wait”。 “Force Close”将杀掉发生ANR的应用进程。“Wait”将会等待系...转载 2018-12-12 13:58:30 · 553 阅读 · 0 评论 -
Android ANR问题总结
在实际情况中,当Android项目的用户量特别大时候,一些细小的问题也会被放大,ANR问题就是一个典型的例子。一些ANR问题只会发生在用户实际使用的情景,当系统资源比较紧张等一些特殊情况下才会遇到,而这些ANR问题有很大一部分是因为我们的代码不合理导致,这就需要我们定位问题,修复问题,并且在以后的代码设计中尽量避免这些不合理。最近工作中集中分析了项目的大量的用户自动上报的ANR问题日志,虽然网...转载 2018-12-12 14:13:15 · 234 阅读 · 0 评论 -
Android通过AudioRecord录制系统内置声音
转自:http://blog.csdn.net/jinzhuojun/article/details/33748031通过API 19新加的MediaRecorder.AudioSource.REMOTE_SUBMIX参数可以让系统App录制系统内置的声音,也就是扬声器的声音。下面是一个巨简单的例子来示例如何通过AudioRecord配合REMOTE_SUBMIX参数进行录制。转载 2017-09-01 17:03:08 · 19843 阅读 · 17 评论 -
SeekBar的thumbOffset属性
Android的控件SeekBar中有个android:thumbOffset的属性,这个属性的作用是指示thumb(滑块)在拖动条的进度最大值与最小值时相对于拖动条的偏移量thumbOffset值 拖动条最小值时thumb位置 拖动条最大值时thumb位置 0thumb的最左端原创 2017-09-01 16:49:46 · 13439 阅读 · 0 评论 -
android屏幕的熄灭与点亮
应用程序获取PowerManager服务, 我们可以这样书写: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);强制屏幕熄灭:pm.goToSleep(SystemClock.uptimeMillis());强制屏幕点亮:pm.wakeUp(SystemCl原创 2016-12-21 16:07:14 · 507 阅读 · 2 评论 -
Android NetworkOnMainThreadException异常原因及解决办法
android代码中出现Android.os.NetworkOnMainThreadException的错误提示原因:不允许在主线程中进行网络访问解决办法:将网络访问的操作单独放到一个线程中,代码如下:[java] view plain copynew Thread(){ @Override public vo原创 2016-12-21 14:22:45 · 4858 阅读 · 0 评论 -
android framework audiofocus机制
转自:http://blog.sina.com.cn/s/blog_645b74b90101e74f.html数据结构AudioService中维护了一个栈:Stack mFocusStack栈里面的记录FocusStackEntry定义如下: private static class FocusStackEntry { public int mSt转载 2016-12-14 19:42:11 · 279 阅读 · 0 评论 -
ffmpeg的各种功能用法例子
ffmpeg的各种功能用法例子:http://blog.csdn.net/leixiaohua1020/article/category/1360795原创 2016-11-28 18:28:35 · 635 阅读 · 0 评论 -
android系统级应用静默升级及注意事项
android静默安装apk使用android.content.pm.PackageManager.installPackage(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName)进行安装应用程序,ovserver 和packagename都可为null,但是为系统级转载 2016-12-09 16:14:46 · 2869 阅读 · 0 评论 -
Android音乐编程:管理音频焦点
转自:http://mobile.51cto.com/android-309321.htm因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放音乐,Android 系统使用音频焦点来进行统一管理,即只有获得了音频焦点的应用程序才可以播放音乐。您的应用程序在开始播放音频文件前转载 2016-12-14 19:45:50 · 292 阅读 · 0 评论 -
Android调用另一个现成的可执行程序或系统命令
参考:http://blog.csdn.net/legendmohenote/article/details/5828455Android应用程序怎样启动让init进程知道我们想运行那个进程呢?答案是设置系统属性“ctl.start”,把 “ctl.start”设置为你要运行的Service,假设为“vtserver”, SystemProperties转载 2016-11-28 18:38:47 · 2500 阅读 · 0 评论 -
andorid jni入门教程一之helloworld
开发环境:windows2007, eclipse做anroid越深发现用到底层开发的时候越多,但是我以前也没有搞过,因此现在打算好好学习学习。先从最简单的做起。正所谓万事开头难啊。搞了近一天终于把在windows下,用eclipse开发Android JNI给倒腾通了。下面将详细讲解其操作步骤和我在其中遇到的问题参考:http://www.cnblogs.com/bast转载 2016-11-28 18:36:21 · 155 阅读 · 0 评论