- 博客(21)
- 资源 (10)
- 收藏
- 关注
原创 Android P Auto版本evs_app解析之二:evs_app启动和运行
最近在调试Android Auto版本的evs_app程序。evs_app相关参考:《Android P Auto版本evs_app解析之一:evs_app代码架构和通信机制》《Android P Auto版本evs_app解析之二:evs_app启动和运行》一、检查摄像头设备驱动层生成的摄像头设备节点在dev下面查看。adb进入系统目录dev下,ls -l查看摄像头;生成的摄像头为:...
2019-06-28 17:45:49 3786 1
原创 Android P实现Tcp socket心跳包机制 保证socket断开重连
本文的例子是客户端的例子,只有客户端的代码。服务器端作为数据接收方,客户端作为数据发送方。客户端在SocketService中实现。public class SocketService extends Service { private static final String TAG = "SocketService"; private static Socket mSoc...
2019-06-28 12:26:30 1537
原创 Android P解决Socket通信Tcp粘包问题
TCP协议是一个面向流的协议,所以他会出现粘包的问题。一、TCP服务端客户端代码实现客户端代码实现连接服务器的代码:protected void connectServerWithTCPSocket() { boolean bRun = true; try { // 创建一个Socket对象,并指定服务端的IP及端口号 // 本地回路ip:127.0...
2019-06-26 20:25:45 3004
原创 Android中关于Socket通信数据大小,内存缓冲区和数据可靠性的一点调查
关于TCP和UDP Socket通信的区别:应用场景:UDP传输协议效率高,但不可靠;TCP传输效率低,但可靠。传输数据大小:UDP传输数据限定在64K以下;TCP传输数据无大小限制,可进行大数据传输。TCP/IP协议:应用层、传输层、网络层、链路层TCP和UDP都是基于TCP/IP的协议。1、查看TCP/UDP数据占用内存大小cat /proc/net/sockst...
2019-06-24 16:40:00 4887
原创 Android P实现Bitmap、Byte[]数组和Drawable之间的相互转换
在安卓开发中,会经常用到将图片转化成byte[]数组保存或者传输,然后再将byte[]数组转换成图片格式,得到图片。一、将图片转换成byte[]数组public static byte[] bitmap2Bytes(Bitmap bitmap){ if( null != bitmap ){ ByteArrayOutputStream baos = new ByteArr...
2019-06-24 12:34:11 1262
原创 Android P检测USB插入拔出消息并基于libaums实现读取USB文件
Android设备中检测USB插入消息,并且从USB中读取文件。一、导入libaums包libaums开源项目地址:https://github.com/magnusja/libaumsbuild.gradle文件中引用libaums:implementation 'com.github.mjdev:libaums:+’或者编译出libaums-0.6.0.jar,导入jar包:imp...
2019-06-22 17:15:50 2912
原创 Android P使用AccessibilityService监听当前窗口变化
当切换安卓应用时,有时候我们需要知道当前切换窗口或者界面的包名和activity名,从而知道当前运行的app状态。AccessibilityService辅助功能服务本来是应用于帮助残障用户使用Android设备和应用。利用他可以接收到一些系统的回调信息。例如界面变化,焦点,按钮点击状态等。
2019-06-22 16:41:31 7162 1
原创 Android P系统禁止闲置APP在后台使用麦克风的问题
android P的系统为了进一步提高用户的安全隐私,禁止了后台闲置应用使用麦克风。所以当一个app进入后台后,变成闲置idle状态,是无法在使用麦克风录音的。逻辑分析代码路径:frameworks\av\services\audiopolicy\service\AudioPolicyService.cpp禁止闲置app使用麦克风的逻辑是在AudioPolicyService中处理的。安...
2019-06-15 19:05:15 8169 6
原创 Android P系统编译之使用PRODUCT_COPY_FILES拷贝文件或文件夹
Android开发中有一个常见的需求,就是把我们App开发的应用,拷贝到system/app目录下,当成一个系统级应用,然后一起打包升级。Android系统编译生成目录:out\target\product<platform-name>Android编译mk文件目录:build\core我是在build\core\envsetup.mk中进行修改的:增加:#PRODUCT_C...
2019-06-14 20:17:13 12555
原创 Android P系统编译打包时去掉不必要的apk
Android系统在编译过程中,会自带一些我们没必要的软件。每次系统编译打包时,都会默认把这些软件打包到image里面,升级的时候就会有这些软件。然而,大部分的系统默认软件我们是用不到的,需要将他们去掉。使其不包含在image中打包升级。代码路径:...
2019-06-12 20:36:52 3912
原创 Android P Auto版本Home画面解析
一、Auto版简介从Android O系统后,安卓发布了针对车机的Auto版本系统。比较Android P的的Auto比起Android O来说,更加成熟,逻辑功能更加完善。Auto系统启动后第一页是用户界面:选择用户后,进入Home画面:二、Auto版SystemUI分析Auto版本的导航栏和抬头栏也是在SystemUI中实现的。1.加载SystemBar代码路径:frame...
2019-06-11 17:25:18 2490
原创 Android Studio编译报错:Password verification failed
今天从github上面导入一个工程,编译时报错:Password verification failed还是第一次见到这种错误,网上找不到合适的详细说明。只能阅读错误信息,详细的错误信息如下:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processInstantRunDebugRes...
2019-06-10 21:58:51 12793
原创 解决Android Studio工程无法引用Library中的jar包的问题
碰到一个项目需求,导入了一个Library库,该Library库中引用了一些jar包。在Module中需要去引用这些jar包时编译报错,找不到类。解决方法:修改Library库的build.gradle文件,将implementation改成compile代码如下:dependencies { implementation fileTree(dir: 'libs', include...
2019-06-10 13:23:18 5605 2
原创 解决百度地图SDK报错问题 鉴权错误信息 errorcode: 230
1.使用百度地图SDK的应用需要申请应用(AK)官网网址为:http://lbsyun.baidu.com/apiconsole/key/create如图下:需要获取开发版本SHA1和发布版本SHA1,参考文章:https://blog.csdn.net/Sunxiaolin2016/article/details/91042117将AK加入到AndroidManifest.xml中:...
2019-06-09 18:42:17 7819 2
原创 Android Studio获取开发版SHA1和发布版SHA1
一、获取开发板SHA进入目录C:\Users\ad.android下,执行:keytool -list -v -keystore debug.keystore,输入口令:android(默认密码)二、获取发布版SHAAndroid Sudio工具栏,Build–Generate Signed Bundle or APK–APK.1、选择新建一个Key Store签名文件,如果已经有了签名...
2019-06-06 12:27:02 2233
原创 Beyond Compare不能打开SELinux的*.te权限配置文件
安卓系统中的SELinux是通过*.te文件来配置的,具体请参考:https://blog.csdn.net/Sunxiaolin2016/article/details/91039775Beyond Compare默认不能打开*.te文件。原因:Beyond Compare默认识别*.te文件为Terse Executable文件,即可执行文件。但是*.te不是一个可执行文件,所以打不开;...
2019-06-06 10:41:39 2009
原创 Android P关于串口访问权限的问题
一、SELinuxSELinux是一种安全系统,Android将SELinux纳入到安卓系统中,用于增加安卓系统的安全性,是安卓的一种访问控制策略。在SELinux的强力保护下,安卓可以更好的对应用程序数据和系统日志进行访问控制。这不仅减轻了恶意程序对系统的影响力,而且保护了用户不受移动设备上隐藏的恶意代码所攻击。对于开发者来说,SELinux限制了一些访问权限,导致开发过程进行经常遇到一些...
2019-06-06 10:17:31 4643 1
原创 Android P摄像头开发和V4l2视频处理
基于安卓9.0系统,简单实现打开摄像头并获取视频流数据。1、打开摄像头摄像头设备为:/dev/video0//打开摄像头 deviceName为/dev/video0if ((fd = open(deviceName, O_RDWR, 0)) < 0){ return false;}2、查询视频设备的能力,是否具有视频输入,或者音频输入功能 v4l2_capabili...
2019-06-04 09:35:57 4781 6
原创 Android P中adb命令总结
1、保持logcat打印到指定位置adb logcat -v time process >D:/system.log2、给某程序赋予某权限adb shell pm grant "com.android.systemui" "android.permission.READ_CONTACTS"3、开启/关闭屏幕自动旋转//disable auto rotation 0/1adb ...
2019-06-01 18:49:24 839
原创 Android P在app程序中执行shell命令
安卓在app程序中执行shell命令的方法:1.执行shell命令Process p = Runtime.getRuntime().exec("/data/local/tmp/minicap -P 1920x1080@600x480/0");命令解释:/data/local/tmp/minicap -P 1920x1080@600x480/0,用来运行/data/local/tmp/min...
2019-06-01 18:22:43 5986 2
原创 Android P实现minicap客户端和解析minicap数据
minicap的socket方式:UNIX domain sockets。所以连接minicap的方式为:LocalSocket一、运行minicapminicap运行后,建立socket服务端。minicap的编译和运行请参照文章:https://blog.csdn.net/Sunxiaolin2016/article/details/90697555二、Android代码建立客户端连...
2019-06-01 18:16:15 3846 14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人