![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android知识
文章平均质量分 54
余烬岛游戏
一只正在成长的小菜鸟
展开
-
记录一个因为dumpsys导致应用出现ANR的问题
我们先看一下这个ANR的主线程状态:从主线程的堆栈我们可以看出,应用block在了renderthread的postAndWait方法,我们接着看一下这个方法的实现:从这里我们可以看出是mSignal这个在等待锁释放,进一步搜索发现mSignal是在unblockUiThread方法中释放的那么unblockUiThread方法是什么时候调用的呢?搜索代码发现该方法在DrawFrameTask的run方法中调用根据postAndWait方法我们可以看到run方法实际是在renderthread中的消原创 2022-12-07 17:30:05 · 975 阅读 · 1 评论 -
Ubuntu编译AOSP报错集锦
本文主要收集各类Ubuntu编译aosp时出现的报错信息 以及解决办法1、错误信息:error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory解决方案:sudo apt install libncurses5方法来源:https://www.jianshu.com/p/4876ab4a8f32...原创 2022-05-12 15:59:13 · 408 阅读 · 0 评论 -
在Windows上通过NDK编译CURL
因为Windows不能像Linux那样执行configure命令,所以需要手动新建一个curl_config.h文件,该文件需要放入源码目录的lib文件夹下,具体内容如下:/* lib/curl_config.h. Generated from curl_config.h.in by configure. *//* lib/curl_config.h.in. Generated from configure.ac by autoheader. */ /* when building libc原创 2021-09-18 09:40:42 · 541 阅读 · 2 评论 -
Android蓝牙启动流程分析
本文基于Android9.0源码,文中代码分布位于framework/base/services/core/java/com/android/server frameworks/base/core/java/android/bluetooth(平时我们调用的api代码就位于这里) package/app/bluetooth(系统中的蓝牙app,这里是最终实现蓝牙协议的地方) system/bt/binder/bluetooth(这里定义了整个蓝牙服务中使用到的AIDL)启动蓝牙我们需要调用framewor原创 2021-07-15 11:08:15 · 1778 阅读 · 0 评论 -
解决flutter项目在AndroidStudio4.0的logcat中出现Please configure Android SDK
这个只针对flutter项目,我估计是flutter插件的原因,因为flutter项目的工程目录结构并不是一个传统的AS项目结构。所以解决办法就是先打开一个正常的android工程,然后再在新窗口打开flutter项目,这时候Please configure Android SDK的提示就没有了。...原创 2020-06-17 10:46:32 · 2196 阅读 · 2 评论 -
正确的Flutter和Android交互代码
网上能搜到很多交互的示例代码,这里主要说一下Android端的:// CHANNEL_NAME是String字符串,对Channel命名MethodChannel methodChannel = new MethodChannel(getFlutterView(), CHANNEL_NAME); // setMethodCallHandler,接收此通道上对方法的调用处理 m...原创 2020-03-05 14:20:03 · 2083 阅读 · 2 评论 -
探讨Android实现后台(Service)按键监听的功能
Android系统中实现对全局按键事件的监听原创 2016-11-25 10:24:22 · 37344 阅读 · 78 评论 -
Android中webservice的简单使用以及使用handle在UI线程和子线程中传递数据
首先是导入webservice需要用的原创 2014-05-21 17:23:19 · 1565 阅读 · 0 评论 -
Android如何监听按键
比如监听返回键:原创 2014-05-21 17:30:22 · 853 阅读 · 0 评论 -
将ZXING打包生成jar文件
本博客转自:http://blog.csdn.net/sonikk/article/details/9228481转载 2014-06-01 01:23:29 · 3178 阅读 · 2 评论 -
我对android中Activity的理解
一、activity是什么在我们的应用原创 2014-06-12 09:16:48 · 2345 阅读 · 0 评论 -
Android调用系统安装apk的注意事项
对于7.0及其以上的设备我们需要做如下操作: 1.在manifest中注册FileProvider<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="...原创 2018-07-11 12:32:02 · 27905 阅读 · 1 评论 -
关于Android设备管理器的一些操作以及权限开启
做这个的目的简要的说一下,因为我们的设备长期暴露在阳光之下,长时间的运行导致设备温度过高从而导致设备停止运行。因此我们做了一个温度传感器,当温度高于阈值的时候,通过关闭屏幕来进行降温。至于为什么不直接关机,这里主要是为了后台监控方便。 那么,怎么关闭屏幕呢?谷歌为我们提供了一个叫DevicePolicyManager的服务,我们可以通过这个服务来实现屏幕的关闭。 当然首先我们需要配置一些东西,...原创 2018-08-09 01:15:24 · 11275 阅读 · 7 评论 -
阿里Sophix热修复框架注意要点
今天测试了一下阿里的Sophix热修复框架,然后搞了一下午,始终无法正常的联网更新,一开始一直以为是权限问题,后来发现是参数填写错误了,所以在博客里面记录一下,如果后续需要使用的话,可以避免掉(小小的吐槽一下,Sophix这个名字第一眼看着我以为是凤凰的意思,还感叹了一下别人起名字就是这么艺术,凤凰浴火重生嘛,完美契合热修复主题。然后后来发现是我英语太渣了。。。。。) SophixMana...原创 2019-03-16 22:33:57 · 310 阅读 · 0 评论 -
Android实现3DES加密解密字符串
最近一个项目需要用到3DES加密解密,网上有很多关于android实现3DES加密解密的文章和代码,但是因为3DES加解密的时候需要确定加密模式和填充方式,网上大多都是采用的默认的,这就可能导致你加解密的结果和服务器并不一致。首先是加密过程,这里我们把需要加密的字符串定义为data,秘钥定义为key(这里我们使用的是kotlin),另外需要注意的是,在字符串转为byte[]时,我们需要保持编码的...原创 2019-05-09 14:10:21 · 1244 阅读 · 0 评论 -
通过xUtils3向服务器提交数组参数
首先我们来看看在http请求里面,如何提交数组参数,这里我们以GET请求为例。比如我们需要向服务器发送多个用户ID,那么如何以数组的方式向服务器提交数据呢?下面是示例代码:http://192.168.1.1/api?id=1&id=2&id=3基本做法就是这样,重复的参数名,不同的参数内容。那么回到xUtils3这个http请求库上来,我们怎么向服务器提交数组参数呢?xUt...原创 2019-05-06 23:32:10 · 813 阅读 · 0 评论 -
实现微信聊天界面的泡泡对话框效果(改进)
我们先来看看这个泡泡效果具体是什么如上图所示,这是聊天界面中有人发送的视频,这个泡泡背景左上有个尖角,按照我们普通的设计来说,这个角要么是空白的,要么视频内容完全覆盖了那个尖角。那么我们如何才能实现截图中的效果呢,这里我们就需要用到安卓自定义UI中遮罩相关的API了,网上关于这个说明很多了,我这里就提一个关键字,大家可以去搜相关的文章来看:PorterDuffXfermode另外我们这里还...原创 2019-05-31 02:43:59 · 3645 阅读 · 0 评论 -
Android自己创建一个相机应用
一般原创 2014-07-01 16:06:09 · 698 阅读 · 0 评论 -
关于调用Android相机拍摄照片返回数据过小的问题
常见的调用系统相机的方法,返回的数据都很小,不能满足需求。所以我们需要重新处理。原创 2014-11-27 10:06:46 · 670 阅读 · 0 评论 -
对Android设备通过局域网ADB进行调试
有些时候一些Android并没有提供USB调试,这个时候我们可以尝试使用局域网ADB进行调试。不过这种方法也需要设备支持,设备需要内置ADBD服务,并且开启了这项服务。如果服务未开启我们需要通过以下命令开启: setprop service.adb.tcp.port 5555 start adbd 注意:这两个命令是需要在Android设备上输入的并且需要root授权,原创 2016-10-21 09:10:04 · 8498 阅读 · 0 评论 -
Android自定义SeekBar样式,遇到的进度条高度问题
首先来看我的android:progressDrawable="@drawable/seek_progress_drawable",下面是seek_progress_drawable文件:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/androi原创 2016-10-19 00:34:15 · 12163 阅读 · 2 评论 -
串口调试Android设备
原本打算辞掉上家公司之后可以来做手机应用,没想到还是回到了老本行——机顶盒。新公司做机顶盒比以前还麻烦一点,以前公司的机顶盒还能使用adb来今天调试,新公司只能使用串口了。下面就记录一下我在使用串口调试时的一些心得体会。 首先,串口调试得使用一个串口调试转接工具,至于这个工具哪里搞,我也不清楚,因为我进公司以后他们直接给了我连接工具,然后通过这个工具和电脑的USB口连起来。这里唯一要注意的就是原创 2016-10-10 09:08:53 · 10278 阅读 · 4 评论 -
Android6.0运行时权限问题(一)
之前因为一直做TV开发,目前国内TV盒子系统基本都在4.4以下,所以一直很少接触新系统的特性。最近又回归到手机开发,所以也补补课,写点东西就当给自己补课了。 Android6.0相较于之前的版本最直观的变化应该就是关于权限的管理了。6.0以前权限申请写到AndroidManifest.xml中就万事大吉,但是6.0之后对于一些高危权限,比如读取通讯录,读写sdcard分区等,不仅需要写到清单文原创 2016-09-09 19:33:10 · 566 阅读 · 0 评论 -
Android联系人数据库读取
android读取联系人是通过contentprovider的接口形式来进行的,而且联系人操作属于高危级别的行为,因此需要做权限申请:<uses-permission android:name="android.permission.READ_CONTACTS"/> 如果是Android6.0以上系统,还需要在实际操作前申请运行时权限,关于运行时权限的问题这里暂且不讨论。 那么我们首先获取获原创 2016-09-09 17:53:23 · 3715 阅读 · 0 评论 -
记Android关于.9切图的一点小技巧
其实也不算技巧,只是我最近项目里犯的一个错,然后才明白究竟该如何让美工帮我们正确的切图。 首先来说一下我的需求,下面是UI效果图的一部分: 左边是正常情况的效果,右边是获得焦点后的效果。 放大这个效果 我们就暂时不说了,只说这高亮的部分。对于这情况,我们一般都是直接设置一个background属性,而这个background的Drawable的图片一般都是一个selecto原创 2016-04-25 02:18:30 · 1769 阅读 · 1 评论 -
解决ZXING生成二维码图片白框太大的问题
最近项目里需要生成一些二维码,使用之后发现一些问题,生成之后的图片,白色边框区域太大了,导致二维码内容区域太小。 百度了一下,有人说设置EncodeHintType.MARGIN属性即可,这个属性值为1-4,实际测试发现并没有什么卵用。 后来找到另外一个解决办法:自己手动去除黑边,代码如下:public static Bitmap Create2DCode(String str, int原创 2016-04-10 21:56:09 · 25021 阅读 · 17 评论 -
Fragment的陷阱(转)
本文转自:【http://my.oschina.net/jack1900/blog/295649?fromerr=3m3fT34P】 本文还需要待验证,写在这里的原因是怕自己以后忘记找不到了。以前做过的一个项目,Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象。嵌套的地图会出现滑动不动的情况,起先还以为是高德的bug呢,经过一番研究,终确定这是一个坑。先对Fragm转载 2016-03-28 11:04:47 · 438 阅读 · 0 评论 -
记Android外置存储区的坑
一般情况下,Android应用会在外置存储区存储一些特别的数据,比如音乐类应用需要存储用户听过的歌的缓存或者下载的歌曲。通常情况下我们是直接通过Environment.getExternalStorageDirectory()这个方法来获取系统的外置存储区的,但是Android4.4以后,谷歌为了规范应用,防止应用在卸载后留下一大堆乱七八糟的文件夹在用户的外置存储区,所以非系统应用是无法直接操原创 2015-11-18 01:55:12 · 1152 阅读 · 0 评论 -
Android使用.9图片失效的问题
今天在实际开发中,因为有一张图片只需要横向拉伸,于是我就只对这张图片进行了横向的.9处理(在图片上方画了一条黑边),结果实际运行时发现,.9效果消失了,不仅横向全部拉伸,我没有画黑边的地方也拉伸了,并且黑边还给显示出来了。后来,经过一番测试,发现.9处理必须要成对,也就是你要作拉伸处理的话,必须上边和左边都要处理,作内容限制的话,右边和下边都要处理。这样出来的.9才会有效果,这里暂时做一个记录原创 2015-11-07 01:36:26 · 3372 阅读 · 0 评论 -
RecyclerView的BUG探讨
RecyclerView 这是一个全新的列表控件,这里就暂时不讨论它的用法了,百度随便一搜就会出现一大堆用法,这里讨论的是我在使用过程中遇到的一个bug。异常信息如下:10-29 00:44:52.845: E/AndroidRuntime(17874): java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid vi原创 2015-10-29 03:04:50 · 5083 阅读 · 1 评论 -
Android MediaRecorder录制视频提示start failed的解决办法
今天测试MediaRecorder录制功能的时候出现一个蛋疼的BUG,按照官方提供的示例写好之后,start居然报错,打印日志一看说:start failed。代码如下: mCamera = Camera.open(0); surfaceView = new SurfaceView(this); setContentView(surfaceView);原创 2015-10-19 11:14:54 · 10847 阅读 · 0 评论 -
appcompat_v7库导入出错的解决办法
导入V7包时候我们经常会出现各种各样的错误,下面介绍两种常见错误。第一种:V7包直接报错。这种错误一般是res中的value文件报错,比如value21 value19这样的文件夹。导致该种错误的原因是V7包所选择的android SDK开发包太低导致的。如果是value21报错,那么你至少需要选择5.0.1以上的SDK版本。 第二种:当我们开发的项目引入V7包后,控制台提示:原创 2015-10-10 01:56:52 · 3277 阅读 · 0 评论 -
FastJSON使用心得——如何解析带中文或者数字key的数据
今天群里有人怎么快速解析带中文key或者数字key的json数据,示例数据格式如下: { "姓名": "张三", "年龄": 12 }最开始以为没办法使用快速解析了 只能一个个的按照键值对来取 后来感觉阿里巴巴的大牛应该早就考虑到了这些问题于是百度了一下 发现果然有解决办法 直接用注解就好了,实体类写法如下:public class Peopl原创 2015-09-20 19:26:47 · 6906 阅读 · 0 评论 -
Android监听TextView跑马灯的状态
监听TextView中跑马灯状态原创 2015-08-21 16:21:07 · 4121 阅读 · 0 评论 -
RecylerView内部实现ItemClick事件
RecylerView是谷歌在2014年推出来的新的一个列表控件,通过这个可以自由设置横向或者纵向的ListView以及GridView。总之功能十分强大,但是不知道为什么谷歌并没有实现OnItemClick的监听功能。网上目前有两种实现方式,第一种是直接在Adapter的onBindViewHolder方法里实现,第二种是在ViewHolder里面实现。今天我们采用第三种方式,直接在Recy原创 2015-08-14 13:59:51 · 816 阅读 · 0 评论 -
关于scrollView嵌套listView或者GridView
首先来说,google官方并不支持我们在ScrollView里面嵌套ListView或者GridView这种具有滑动属性的控件。但是有些时候,我们确实有需要用这样的设计。如果我们强行在ScrollView里面嵌套ListView或者GridView,那么ListView并不能显示完全。如何解决这种矛盾呢?大概有以下几种办法:1、重写ListView或者GridView,当然我们只需要重写onM原创 2015-02-02 03:26:26 · 642 阅读 · 0 评论 -
Android TV开发遇到的图片失真问题以及对应的解决办法
现在的Android机顶盒为了兼容电视屏幕,一般都会设置一个修改分辨率的功能。然而这个修改分辨率很多时候其实不是修改系统实际分辨率,而是一个输出分辨率。 因为在Android系统中,图像从生成到最后显示在屏幕上大概需要经过以下过程:nativeui—>framebuffer—>显示屏。平时我们所说的系统分辨率就是nativeui这里的,而现在很多android盒子修改分辨率则是修改frameb原创 2016-10-26 18:04:31 · 2877 阅读 · 2 评论