![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-----Android-----
世外大帝
调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
https://github.com/seeways
展开
-
惊天大瓜!JCenter要跑路了!!!
惊天大瓜!JCenter要跑路了!!!没错,这将影响到所有的Android开发者!!!昨天我将Android Studio 升级到了4.2,Gradle也升级到了7.0,按照惯例,加个镜像,然后报了个安全错误,就是早就通知的http转https,然后到了gradle页面,发现jcenter()被替换成了 mavenCentral(),jcenter()还加了个中划线???jcenter() // Warning: this repository is going to shut down soon原创 2021-05-11 14:58:45 · 1330 阅读 · 1 评论 -
Resource IDs will be non-final in Android Gradle Plugin version 5.0, avoid using them in switch case
事情是这样的,今天升级了一下AS,然后所有click事件中的switch就都报这个错,大概意思是:资源id在Android Gradle插件版本5.0中不是final,所以避免在switch case语句中使用它们。这就是原因了,新版本中把final字段去掉了!!!而switch要的所有字段必须都是final加持的,所以要解决这个问题,还得从这个原因入手解决办法添加注解在所在方法上添加一个注解压制警告 @SuppressLint("NonConstantResourceId")用if替代原创 2020-11-12 16:12:45 · 4860 阅读 · 3 评论 -
U盘读写速度优化
从android设备上向U盘上传文件,时间比较长,优化后,时间大幅度缩短经过几次测试,8k的缓存可以达到传输速度和容错率的平衡点,超过了太容易出错,低于8k传输速度会下降。byte[] buffer = new byte[1024 * 8];使用的第三方框架为 implementation 'me.jahnen:libaums:0.7.6'查了一下,有的说法是默认缓存大小是8k,正好符合,没考证说法的正确性。...原创 2020-11-11 16:34:38 · 1859 阅读 · 0 评论 -
Android OTG U盘相关
三方库implementation 'me.jahnen:libaums:0.7.6'权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-feature android:name="android.ha原创 2020-10-27 19:06:12 · 1896 阅读 · 0 评论 -
声音合集
系统声音package com.ahsoft.tachymeterapp.utils;import android.media.Ringtone;import android.media.RingtoneManager;import android.net.Uri;import android.os.Build;import static org.litepal.LitePalApplication.getContext;/** * created by Taoyuan on 2020原创 2020-10-24 20:59:23 · 1308 阅读 · 0 评论 -
SAX解析及修改xml
修改xml,通常不会全篇修改,只修改某些关键节点解析用到的实体类public class RadarSetEntity { private String signSpeed; private String speedLimit; private String bigCarSignSpeed; private String bigCarSpeedLimit; private String radarConstantCorrection; public S原创 2020-10-09 16:58:36 · 1718 阅读 · 0 评论 -
Android9以后遇到的一些问题
Android9以后不能使用外存我遇到这个问题的时候没报错,但就是无法成功创建文件,报了找不到文件异常才发现问题application的属性中添加一条属性,请求使用遗留外存android:requestLegacyExternalStorage="true"Android9以后对未加密的流量不信任报错为:ERR_CLEARTEXT_NOT_PERMITTED 网络错误,没有明文权限application的属性中添加一条属性,请求使用明文流量android:usesCleartextTraff原创 2020-09-30 10:33:31 · 1393 阅读 · 0 评论 -
海康OSD添加获取及清除
函数NET_DVR_SHOWSTRING_V30 // OSD信息集NET_DVR_GetDVRConfig// 获取NET_DVR_SetDVRConfig// 设置添加 /** * 设置 OSD 字符叠加参数 * * @param iUserID loginId * @param iChan 通道号 * @param contents 内容 */ public static void SetOSDString(原创 2020-08-18 11:09:31 · 6065 阅读 · 2 评论 -
Unfortunately you can‘t have non-Gradle Java modules and Android-Gradle modules in one project
解决步骤:Close ProjectClose Android Studio IDE删除 .idea 目录和 .iml 文件Open Android Studio IDE And Project.步骤转自 https://blog.csdn.net/qq_30618961/article/details/100989048不知道原理是什么,因为本地库没有出现变动,但就是莫名其妙的好了。做个猜测,出现这个问题,大概率不是本地新建的项目,由于创建环境的各种插件版本可能与本地由差异,所以检索失败原创 2020-07-21 09:31:27 · 1351 阅读 · 0 评论 -
Android图表-MPAndroidChart
介绍项目地址:https://github.com/PhilJay/MPAndroidChart导入implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'之前没做过图表类的view,试用了一下,这个项目做个非常好,集合了线状图、条形图(包括垂直和水平)、散点图、饼状图,蛛网图、气泡图、烛台图(OHCL图表)以及他们的组合我只需要显示1-2个点,所以选择了散点图, 动画可自行添加代码百分比布局已经融入了中 ConstraintLay原创 2020-07-18 17:56:11 · 1339 阅读 · 0 评论 -
RecyclerView应用复习
导包 implementation 'androidx.recyclerview:recyclerview:1.1.0' //recyclerview implementation 'com.zhy:base-rvadapter:3.0.3' // adapter 框架 implementation 'com.github.orangegangsters:swipy:1.2.3@aar' // 上拉刷新下拉加载应用GridListprivate RecyclerView m原创 2020-07-14 14:29:38 · 1291 阅读 · 0 评论 -
JNI开发:cpp与java通信
javaMainActivity.javapackage com.example.administrator.myapplication;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;import android.util.Log;import android.view.Surface;import android.view.SurfaceView;import android.view.V原创 2020-07-01 16:44:14 · 1402 阅读 · 0 评论 -
JNI DETECTED ERROR IN APPLICATION input is not valid Modified UTF-8 illegal start byte 0xff
报了好几种错,最后报到这个错之后,从编码问题入手后,问题解决了写个转换方法即可jstring charToJString(JNIEnv *env, char *pat) { //定义java String类 strClass jclass strClass = (env)->FindClass("java/lang/String"); //获取java String类方法String(byte[],String)的构造器,用于将本地byte[]数组转换为一个新String原创 2020-07-01 16:17:01 · 1821 阅读 · 0 评论 -
使用CMake引入jsoncpp
在jni的cpp中使用json,百度了一下,大多都是下面这个库,但是和之前的文档有点出入了,记录一下。jsoncpp库地址:https://github.com/open-source-parsers/jsoncpp添加jsoncpp库在cpp目录下创建一个jsoncpp目录下载jsoncpp项目把src\lib_json文件夹下的文件都拉到项目的cpp/jsoncpp文件夹下(除CMakeLists.txt)再把include\json文件夹下的文件都拉到项目的cpp/jsoncpp文件夹原创 2020-07-01 10:21:53 · 3639 阅读 · 0 评论 -
使用CMake引入第三方so库及头文件
添加第三方库文件将第三方库文件添加到对应的架构目录中如果有多个目录的,可能会报错:More than one file was found with OS independent path 'lib/armeabi-v7a/libmyJNI.so'参考 https://blog.csdn.net/lftaoyuan/article/details/106718096第三方so库一般放在jniLibs目录下对应的架构目录中第三方头文件一般放在cpp/include目录中,include目录可以自原创 2020-07-01 10:20:04 · 9510 阅读 · 3 评论 -
JNI应用-初步应用
今天拉了一下3年前的ndk代码,发现和现在Android Studio生成的代码相差比较大,就重新写一个吧.后面仍然会进一步探索,这个demo只是简单的融合生成的cpp文件和自建的cpp文件,在不同的路径下可以使用同一个库名称。本章是否生成头文件不重要,可以应用即可。因为本身比较简单,所以就不写注释了,如果有网友没接触过,可以留言提问。创建项目选择 Native C++配置创建对应的java文件MyJNI.javapackage com.jiataoyuan.createsodemo;原创 2020-06-12 17:12:00 · 1760 阅读 · 0 评论 -
More than one file was found with OS independent path
More than one file was found with OS independent path 'lib/armeabi/libmyJNI.so'More than one file was found with OS independent path 'lib/armeabi-v7a/libmyJNI.so'More than one file was found with OS independent path 'lib/arm64-v8a/libmyJNI.so'More than原创 2020-06-12 16:15:38 · 3141 阅读 · 0 评论 -
改变Surface视图大小
要改变一个视频流窗口的大小有几种方法。我一开始用了 “最聪明” 的一种,直接用scale动画放大,然而这种方法虽然方便,也有问题,就是视频窗口的画质明显也被拉伸了,很模糊,明显不符合要求。mVideoSurface.animate().scaleX(3).scaleY(3);使用 LayoutParams 改变布局大小,是没有问题的,但是布局变大了,然而视频显示部分并没有变化,这时候只要在...原创 2020-04-22 10:38:07 · 2690 阅读 · 0 评论 -
androidUI中一个小的注意点
昨天下午做测试发现软件崩掉了,由于没有log,我只能看看代码,逻辑上没问题,只有view可能出现问题,但是没法确定,今天模拟环境测试了一下,果然是这个问题。报错为:Only the original thread that created a view hierarchy can touch its views...原创 2019-12-12 14:07:27 · 1294 阅读 · 0 评论 -
串口编程总结
背景接触了这么久串口,一直觉得挺简单的,没什么可总结的,但是总要加一些串口的时候,要求就逐渐高了,尤其是各种硬件之间波特率不一样,解析不同,无法使用同一套代码,有时候测试也需要一个专用工具,于是趁此期间,做个总结,也顺便做个串口工具。关于串口,用的最多的还是232,一些较少用到的还有485,TTL,USB转串口等,遗憾的是,我这个项目都用到了…先说说这些串口吧,对于软件编程来说,除了USB转...原创 2019-11-27 17:54:56 · 1624 阅读 · 12 评论 -
关于应用无法正常安装启动的问题
本周遇到的这个问题,提示是这样的$ adb shell am start -n "com.jiataoyuan.runapp/com.jiataoyuan.runapp.activity.ConnectionActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHERError while executi...原创 2019-11-16 15:09:29 · 1559 阅读 · 0 评论 -
Android Studio关联SVN相关操作
最近一段时间,有朋友陆续从eclipse转Android Studio,总会遇到各种问题,我想说一下SVN的问题。顺便记一下,方便自己方便他人。工具版本Android Studio 2.2SVN 1.8.9配置SVN打开Android Studio配置(简书不支持流程图,凑活看看吧)File|Setting|Version Control|Subversion|选中Us原创 2017-01-11 08:44:41 · 3072 阅读 · 0 评论 -
大疆文档(4)-Android教程-应用程序激活和飞机绑定
本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 .应用程序激活和飞机绑定Note:本教程仅适用于在 中国 使用的应用程序。相同的步骤可用于在现有应用中激活应用和绑定飞机。你可以在这里下载本教程的最终示例项目 Github Page.介绍如果该应用程序在中国使用,DJI飞机固件要求控制DJI飞机的移动应用程序使用用户的DJI账户激活。这将确保操作人...翻译 2019-04-08 13:43:15 · 5818 阅读 · 2 评论 -
大疆文档(6)-Android教程-相机应用程序
本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 .相机应用程序本教程旨在让您对DJI Mobile SDK有一个基本的了解。它将实现FPV视图和两个基本的相机功能:拍摄照片 和 录制视频 。您可以从此 Github Page 下载教程的最终示例项目。在本教程中,我们将使用Android Studio 3.3。激活应用程序和在中国的飞机绑定对于在中国...翻译 2019-04-11 14:20:04 · 3406 阅读 · 19 评论 -
大疆文档(3)-开发流程
本节全篇为开发流程,内容较多,只记录android部分开发流程(1)预备知识使用DJI Mobile SDK开发应用程序需要几个通用的和平台特定的先决条件。生成了解如何去开发一个IOS或Android应用程序一个与DJI Mobile SDK兼容的DJI产品。兼容产品列表信用卡或电话号码用于大疆开发者注册验证(不收费)。至少一个兼容iOS或Android的移动设备。注意...翻译 2019-04-04 17:19:47 · 5419 阅读 · 9 评论 -
大疆文档(2)-指南
相关度较低的略,提取了与安卓相关的文档,本节全篇为指南,内容较多指南飞行控制器介绍飞行控制器是一种机载计算机,它将来自飞行员的控制信息与传感器信息结合起来,调整每个螺旋桨的推力,并根据需要驾驶飞机。飞行控制包括电机控制、起飞和降落、手动飞行模式飞机状态信息,如姿态、位置、速度传感器子组件,如罗盘、IMUs(惯性测量单元组)和定位系统。飞机子组件,如起落架等飞行限制系统,如地...翻译 2019-04-04 10:01:12 · 6484 阅读 · 5 评论 -
Android忽略文件
我常用的gitignore列表 https://github.com/seeways/MyIgnore# Built application files*.apk*.ap_# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# Gradl...转载 2018-02-09 09:48:32 · 3214 阅读 · 0 评论 -
Android JNI 编译so库
Android NDK编程Demo地址:https://github.com/seeways/NDKDemo原创 2017-11-27 18:05:27 · 6064 阅读 · 0 评论 -
Android CMake 编译so库
环境Android Studio 3.0JDK 1.8Gradle 4.1Demo地址:https://github.com/seeways/NDKDemoC++编译so库创建项目 使用默认的C++支持库建立项目后,会默认生成一个模板,有一个简单的Cpp程序,和MainActivity调用示例c++#include <jni.h>#include <string>extern "C"原创 2017-11-27 15:49:57 · 8222 阅读 · 0 评论 -
Kotlin总结4(完结)
背景kotlin断断续续的学了一段时间,正好近期有个安卓项目,就直接上手了。kotlin的优势很明显,劣势也相对明显,虽然一直在进步,但目前而言,还是不如java,毕竟java已经流行了这么多年,各种基础类库已经十分完善了。这个项目是个小项目,主要结合硬件蓝牙和OTG,保险起见,这部分还是用java实现的。体验做安卓项目,必然离不开一堆框架,但是有的java框架在kotlin中并不适合,例如著名的注原创 2017-10-25 12:08:18 · 1553 阅读 · 0 评论 -
Picasso支持https
我用的okhttp,所以直接用的同一个client,在网上找的直接用OkhttpDownload不行,看原因是因为2.5.2不支持okhttp3,所以按照他的格式自己写一个这个项目用的kotlin,直接贴过去就行,java完全兼容application中设置 //初始化okhttp val sslParams = HttpsUtils.getSslSocketFact原创 2017-11-08 16:08:46 · 2870 阅读 · 0 评论 -
RGB转LAB
RGB不能直接转成LAB,需要先转成XYZ,然后在从XYZ转成LAB。RGB和XYZ和LAB可以理解为同一类颜色空间。/** * Convert RGB components to its CIE Lab representative components. * * <ul> * <li>outLab[0] is L [0 ...1)</li> *原创 2017-11-07 10:55:42 · 1845 阅读 · 0 评论 -
大疆文档(1)-介绍-概念
相关度较低的略,提取了与安卓相关的文档进行翻译,以便于加深理解和方便以后的翻阅,本节包括包括介绍,立即开始,概念理解介绍文档介绍SDK简化了应用程序开发过程,实现了较低级别的功能,如飞行稳定、电池管理、信号传输和通信。这样,开发人员就不需要机器人或嵌入式系统的背景知识,而是可以专注于DJI产品集成的应用程序。sdk包括:一个库/框架,可以导入Android或iOS应用程序,从而访问...翻译 2019-04-02 18:12:03 · 2841 阅读 · 0 评论 -
大疆文档(7)-Android教程-地图视图和航点App
本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 .地图视图和航点应用程序在本教程中,您将学习如何实现 DJIWaypoint Mission 功能并熟悉MissionControl的用法。此外,您还将了解如何使用DJI Assistant 2 Simulator测试Waypoint Mission API。让我们开始吧!您可以从此 Github Page...翻译 2019-04-12 16:43:20 · 6151 阅读 · 10 评论 -
大疆文档(9)-Android教程-GEO系统App
本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 .DJI GEO 系统教程在本教程中,你将学会如何使用 DJI Mobile SDK 的 FlyZoneManager 和 FlyZoneInformation 获取飞行区域信息,并解锁授权飞行区域。你可以从这里下载本教程的最终示例项目: Github Page.我们使用 Phantom 4 作为这个d...翻译 2019-04-16 15:20:40 · 3298 阅读 · 3 评论 -
首次重构后的架构
原创 2019-10-08 16:50:37 · 1201 阅读 · 0 评论 -
关于大疆SDK推流延迟的解决方案
这个问题一直困扰了我将近2个星期,期间自己写过,试过yasea框架,随着不断试错,结构和流程也是越来越清晰了,最后发现居然是权限问题!!!本来对yasea框架做了一定的修改,打算用yasea框架接收大疆的数据进行编码推流,然后测试过程中,打开了全部权限后真的将延迟缩短至2-3s,然后为了追寻根本原因,一句一句的注释掉了yasea的代码,最后都注释完了还是不延迟,于是将yasea框架彻底删掉,方向...原创 2019-08-27 11:32:57 · 3754 阅读 · 10 评论 -
大疆坐标系和高德地图坐标系之间转换的问题
目前各种坐标系非常多,他们之间的转换就是个比较麻烦的问题。之前有个问题,就是大疆的坐标系在高德地图上显示发生了偏移,但是好在高德地图提供了坐标转换的API,但是新的问题来了,大疆的坐标适应了高德的坐标系,但是选择航点位置是在高德的地图上,执行却是在大疆的坐标系中,于是今天尝试了多种解决方案后,最后发现还是得逆转一下。大疆坐标系 WGS84 俗称地球坐标系高德坐标系 GCJ02 俗称火星坐标系(...原创 2019-07-25 18:16:35 · 5652 阅读 · 6 评论 -
LitePal使用概要
已经很久没用数据库了,litepal也更新到3.0了,不过使用方法还没什么变化,总体来说还是非常方便的。安装步骤如下:添加依赖在 build.gradle 中添加依赖 implementation 'org.litepal.android:java:3.0.0'配置 litepal.xml在main目录下创建assets资源文件夹,并创建litepal.xml文件<?xm...翻译 2019-06-18 16:51:25 · 1511 阅读 · 0 评论 -
关于串口编程的总结2
我们的程序收发十六进制命令,假设采用16个字节,一个包头(1字节),一个控制(命令字1字节),一个具体命令(数据13字节),一个校验位(1字节),由于java本身对内部控制的应用较少,所以这个前后总共花费了五六个小时才搞定,特此记录一下。这个程序还是有一些缺点的,就是它并不是一次性的返回所有数据,我尝试了很多方式都不行,最后通过判断的方式只接受一条完整有效的命令。类型转换java的操作一...原创 2019-05-18 15:33:57 · 1267 阅读 · 0 评论