自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android通过OpenGLes渲染YUV视频数据

在Android上用OpenGLES来显示YUV视频数据1、首先我先说一下这个解决方案是怎么运行的,给大家一个概念 1.1.显示在哪 -> GLSurfaceVIew 1.2.谁来把数据贴到GLSurfaceVIew上 -> Renderer 1.3.谁来负责YUV数据转换成RGB -> GL中的Program/Shader 一句话说明白就是:G...

2019-05-30 16:17:52 2847 2

原创 Android使用OpenGL(GLSurfaceView)视频画面抖动解决办法

Android使用GLSurfaceView显示视频很简单: surfaceView.setEGLContextClientVersion(2); // Assign our renderer. surfaceView.setRenderer(new GLSurfaceViewEx.Renderer() { @Overri...

2019-01-29 15:09:07 2536

原创 GreenDao如何避免插入相同的数据

GreenDao里面提供存储数据的方法有三个:save(T entity) "Saves" an entity to the database: depending on the existence of the key property, it will be inserted (key is null) or updated (key is not null).通过key属性判断是否存在...

2018-07-17 11:44:51 7596 1

原创 Android 8.0 悬浮窗权限正确开启方式

不多说,直接上代码:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); permissions = new RxPermissions(this); requestPermiss(); ...

2018-07-11 11:03:29 7674 3

转载 Android车载应用开发与分析- 车载多媒体(一)- 音视频基础知识与MediaPlayer

多媒体应用是车载信息娱乐系统的一个重要组成部分,一般包含音视频播放、收音机、相册等。

2024-04-16 19:10:36 8

原创 apk加固后签名

apk加固后签名

2023-02-20 10:09:08 248

原创 Android运行中获取cpu占用率和内存占用

Android运行中获取cpu占用率和内存占用

2022-06-06 14:11:00 7353 2

原创 Docker搭建Android App编译环境

1、下载SDKManagerAndroid链接地址:sdkmanager | Android 开发者 | Android Developers,找到要下载的压缩包,执行以下命令:mkdir AndroidEnvwget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zipunzip commandlinetools-linux-8092744_latest.zip2、移...

2022-03-21 15:39:13 1086 1

原创 Android查看app内存和cpu占用

1.可以使用adb shell showmap pid查看一个进程的showmap,这对于我们来说非常有用,可以确定进程中哪些库占用内存比较多1,确定app进程号,通过jarvis过滤,ps-A显示全部进程g6sa:/ # ps -A | grep jarvisps -A | grep jarvisu0_a37 21979 2223 3858620 193980 SyS_epoll_wait 0 S cn.alios.jarvisdu0_a47 22750

2021-11-23 17:46:37 12036

转载 android:fitsSystemWindows属性

fitsSystemWindows用于设置view在当前窗口的表现。一个app页面,包含:状态栏、标题栏、内容区、底部导航栏(比如有些手机的虚拟导航按键),如图:整个界面可以看做是一个window,fitsSystemWindows 生效的前提是状态栏(StatusBar)或导航栏(NavigationBar)透明并且不能有标题栏,默认fitsSystemWindows = true,表示页面布局(内容区)不会扩展到状态栏,会针对透明的状态栏会自动添加一个值等于状态栏高度的paddingT.

2021-09-15 18:46:57 1092

原创 AS中集成系统签名

前言:我们在做系统级的app开发时,往往会在AndroidManifest.xml文件中添加:android:sharedUserId=”android.uid.system”以获取系统级的权限,如果你正在使用Android Studio进行开发,编译生成的apk会因为签名问题无法安装,如果每次通过手动签名的方式安装,那将是无比痛苦的,根本无法调试开发解决方案:在AS中集成系统签名一、准备工作在github上下载工具keytool-importkeypair点击下载 Android证书文件准备

2021-08-08 17:58:18 443

原创 Android原生模拟器预装三方app

1.获取root权限及remount权限adb rootadb shell avbctl disable-verificationadb rebootadb rootadb remount2.预装app获取remount权限后就可以将自己的apk与lib通过adbpush到系统的system/priv-app目录,push成功后adb reboot重启下模拟器.adb push C:\Users\li282\Desktop\TmallGenie /system/priv-app.

2021-07-09 14:33:12 908

转载 RecycleView4种定位滚动方式演示

概述相信大家在项目中使用RecyclerView时,经常会遇到这样的需求:将RecyclerView滑动到指定位置,或者检索RecyclerView的某一项(各个项的高度不确定),然后定位滚动这到一项,将它显示。下面就讲解4种RecyclerView定位滚动的方式及具体效果演示。scrollByrecyclerView.scrollBy(x, y)使用:recyclerView.scrollBy(x, y)scrollBy(x, y)这个方法是自己去控制移动的距离,单位是像素.

2021-06-22 14:16:19 272

原创 Android透明度十六进制表示法

hex color transparency (透明度十六进制表示法)100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 2610% — 1A5% — 0D0% — 00...

2021-06-09 16:59:16 233

原创 HorizontalScrollView嵌套RecycleView实现上拉加载

1禁掉recycleview的滑动功能recycleHome.setNestedScrollingEnabled(false);

2021-06-02 11:05:01 346

原创 Android开发杂草园

其中参数 alpha 为透明度,数值越大越清晰~setAlpha 参数是float,值的范围0---1(因为是小数嘛,所以0-1就够表示了)已过时setImageAlpha 参数是int,值的范围0---255(整数大着呢,最大取到255)

2021-04-23 10:51:24 1394

原创 Android中如何选择SwitchButton

1,系统自带switch缺点:不能自定义设置宽高,不建议使用2,第三方SwitchButton1com.suke.widget.SwitchButton,github star2k多<com.suke.widget.SwitchButton android:id="@+id/switch_go_home" android:layout_width="@dimen/m_iot_dp_100" android:layout_height="@dimen/m_iot

2021-04-23 10:49:01 560

原创 Android自定义Toast设置宽高

View toastview = LayoutInflater.from(context).inflate(R.layout.m_iot_toast_text_layout, null); LinearLayout linearLayout = (LinearLayout)toastview.findViewById(R.id.con_layout); LinearLayout.LayoutParams layoutParams = new LinearLayout.La.

2021-04-21 15:59:42 1895

原创 git常用命令

1撤销上次提交git reset --soft HEAD~撤回commit操作,您写的代码仍然保留。如果是--hard 你本地代码将不再保留2合并上次提交将多次提价合并成一次提价 git commit --amend3将本地代码暂存git stash 取出可以通过git stash pop4回退到某个版本git reset --hard commitID5将远程某个patch应用到本地改变git cherry-pick commitID...

2021-01-21 10:17:50 97

原创 IllegalStateException: Can not perform this action after onSaveInstanceState

1出现的原因:开启Timer不断检测系统导航的状态,切换到后台,检测到系统导航在运行,直接弹出fragment,这个时候报了Can not perform this action after onSaveInstanceState很多人说的解决办法就是用commit替换commitAllowingStateLoss,我的这种情况是不行的,出现这种情况的原因就是当fragment切换到后台后会调用onSaveInstanceState方法保存状态,保存状态后再去调用getFragmentManager()

2021-01-14 16:44:16 240

原创 Android 5.0以上获取正在运行的程序的包名

1,在AndroidManifest.xml中配置权限<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions"/>2,跳转用户授权界面public boolean checkUsageStats() { AppOpsManager appOpt = (AppOpsManager) mContext.getSys

2021-01-12 16:03:37 534 1

原创 Android在弹窗不消失的情况下依然能响应外部事件

1,dialog的方式public class OffenDestDialog extends Dialog { private Context context; public OffenDestDialog(@NonNull Context context) { super(context); this.context = context; } @Override protected void onCreate(Bund

2020-12-03 16:07:07 536

原创 popwindow设置setOutsideTouchable(false)引发的问题

我们都知道要想让popwindow点击外部区域不消失必须设置setOutsideTouchable(false)和setFocusable(false),但是这样设置后会引发子view获取不到焦点的问题.比如现在pw上有一个控件editText.点击editText弹出键盘这样设置后,无论怎么点击edittext键盘都不会弹出来.有人就要说了,我们直接监听edittext的点击事件用代码弹出键盘.这样也是没用的要想二者兼得必须要处理popwindow的ontouch事件public voi

2020-11-30 18:21:43 602

原创 高德地图Amap常用功能总结

设置缩放比例1,设置缩放比例的api是aMap.moveCamera(CameraUpdateFactory.zoomTo(18));如果你直接设置是没用的,因为此时地图还没加载成功。所以要监听地图加载成功的事件aMap.setOnMapLoadedListener(new AMap.OnMapLoadedListener() { @Override public void onMapLoaded() { aMap.moveCamera(CameraUpd

2020-11-13 19:54:49 2964

原创 在Android8.0上突破隐式广播的限制

在Android 8.0以上,动态注册广播是没有任何影响的,注册方和接收方的action和scheme必须一样且成对出现https://www.jianshu.com/p/5283ebc225d5?utm_source=oschina-app

2020-11-13 10:11:06 134

原创 跨进程启动activity出现的问题

A app启动B app1,A app设置了uri,但是B app没有设置scheme,导致跳转不成功2,B app没有配置默认的category<category android:name="android.intent.category.DEFAULT"></category>3,B app在MainActivity中设置了category后,桌面不显示图标的问题,写两个<intent-filter>来解决<activity androi

2020-11-12 20:34:24 726

原创 Android利用Messenger实现进程通信

跨进程通信方式有很多,本文仅针对利用Messenger实现。 创建服务端 创建Messenger传入MessHander,在handleMessage方法中处理客户端发来的消息。发送消息到客户端通过messengerClient.sent()发送。注意:服务端向客户端发消息必须用客户端的messenger.反之,客户端向服务端发消息必须用服务端的messengerpublic class ReviceService extends Service { @Nullable

2020-09-29 09:39:18 156

原创 Android利用Binder实现进程通信

跨进程通信方式有很多,本文仅针对利用Binder实现。创建服务端写一个service类继承service,在onbind方法中返回自己的BInder,在MyBinder的onTransact方法中接受客户端发来的消息,并发送消息到客户端。客户端的消息通过data,readString()方法获取,服务端发送消息通过reply,writerString()方法发送,注意reply.writeNoException()这个方法,服务端如果写了这个方法,客户端获取服务端消息也必须要写reply.readE

2020-09-28 16:38:42 373

原创 java创建线程的三种方式

Java中创建线程主要有三种方式:一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。 package com.thread; public class FirstThreadTest extends Thread{ int i ...

2020-09-18 10:43:32 93

转载 编译FFmpeg for Android

https://www.jianshu.com/p/feab970fd74c

2020-09-17 17:56:08 70

转载 Android 实现自动抢微信红包

原理我们使用的还是安卓自带的辅助功能 AccessibilityService 。先来讲述以下原理,原理很简单,当页面发生变化的时候,搜索屏幕中的关键字,搜索到了就点开。这个原理在微信旧版本的自动抢红包是有效的,但是在新版本中,开红包的界面没办法这么做了,那我们需要自己模拟点击动作,从而点开这个红包。AccessibilityService 在 SDK24 (即Android 7.0) 引...

2019-11-06 17:01:01 874

转载 Android Camera对焦相关基础自动对焦,手动对焦

https://blog.csdn.net/u010126792/article/details/86692877

2019-09-26 16:29:16 304

原创 Android cmakelists在链接ffmpeg静态库出现的问题

1,error: undefined reference to 'avcodec_find_encoder(AVCodecID)'第一种像这种各种未引用的错误,ffmpeg是一个纯c库,在c++中如果要引用其中的头文件必须要用extern "C"来修饰,如下所示:extern "C"{#include <libavformat/avformat.h>#includ...

2019-09-04 17:54:29 796

转载 Android Studio中CMakeList的写法

只要在Android中有使用过jni的应该都了解我们要编译写的c/c++文件都需要配置编译用的配置文件,在eclipse中要写mk文件;在Android Studio中要写CMakeList.txt这个配置文件。只有写好了这个配置文件我们才正确编译出我们想要的so动态库,今天就讲讲Android Studio中的CMakeList.txt这个文件怎么写,eclispe的mk文件的写法在这就不讲了...

2019-07-05 09:37:04 788 1

原创 华为手机安装apk报解析错误的问题

<application android:name="com.ioidea.mesh.light.TelinkMeshApplication" android:allowBackup="true" android:appComponentFactory="" android:icon="@mipmap/logo" ...

2019-06-20 15:55:04 2716

原创 上传本地文件到github仓库基本操作

第一步:新建仓库新建仓库步骤省略,最后我们得到一个仓库地址:https://github.com/UnicornAmazon/×××××××××.git第二步:进入要上传的文件夹,初始化上传文件夹仓库$ cd ../python/machineLearningCode/$ git init第三步:添加所有文件到git$ git add .$ git commit...

2019-06-06 15:08:05 163

转载 【Andorid源码解析】View.post() 到底干了啥

https://dwz.cn/EAKHh8tyQ1: 为什么 View.post() 的操作是可以对 UI 进行操作的呢,即使是在子线程中调用 View.post()?Q2:网上都说 View.post() 中的操作执行时,View 的宽高已经计算完毕,所以经常看见在 Activity 的 onCreate() 里调用 View.post() 来解决获取 View 宽高为0的问题,为...

2019-04-12 17:00:49 136

转载 Java结束线程的三种方法

线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的。例如在程序中使用线程进行Socket监听请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。当需要结束线程时,如何退出线程呢?有三种方法可以结束线程: 1.设置退出标志,...

2019-04-10 16:58:13 182

原创 NDK 编译报错 too many path components

最近在做蓝牙mesh项目,下载了Telink Sig Mesh项目源码自己编译,因为依赖了NDk的库,编译的时候cmake一直报错,报错信息都是警告信息,最下面就说了个too many path components我们知道,android的c++代码需要使用ndk进行编译后才能使用。而ndk又是和编译平台mac和windows或者linux无关的,所以理论上只要在mac编译通过,window...

2019-02-16 09:53:34 744

原创 处理byte数组常用的api

1,将一个数组从某个索引截取 byte[]bytes=new byte[]{12,13,14,15,16,17,18}; final ByteBuffer buffer = ByteBuffer.allocate(bytes.length - 1); buffer.put(bytes, 1, buffer.limit()); byte[] result = buffer.arra...

2019-01-14 17:45:04 538

系统签名工具keytool-importkeypair.zip

系统签名工具keytool-importkeypair.zip

2021-08-08

系统签名工具keytool-importkeypair.zip

系统签名工具keytool-importkeypair.zip

2021-08-08

系统签名工具keytool-importkeypair.zip

系统签名工具keytool-importkeypair.zip

2021-08-08

Android-nRF-Mesh-Library-master (1).zip

nodric 蓝牙mesh源码, An early alpha version of the Bluetooth Mesh specification, this library will allow you to provision and configure bluetooth Mesh compliant nodes. This is a preview version that has missing features and capabilities that are going to be added in the near future. nRF Mesh for Android is supported on Android devices running Android 4.3 and onwards

2019-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除