自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 资源 (2)
  • 收藏
  • 关注

原创 Idea使用JNI封装c++接口

1.生成JNI头文件工具2.编写java native 方法3.Clion 编写c++ 库拷贝jni.h和jni_md.h编写方法实现4.编译完成后得到dll库5.在idea中引入这个dll6.使用

2021-07-05 14:31:06 610

原创 springboot+dubbo

最近突然要去做后台项目,需要将老MVC项目重构拆分为微服务项目,一脸懵逼,可怕的是这项目目前就我一个人在做这事!!!看了几天的spring,springmvc,springboot 跳着看的,实在没时间全部看完,上面又催进度,智能直接从微服务入手1.测试案例 第一步:dubbo 需要一个注册中心 我直接用的zookeeper,还有很多其他的可以选择,没时间看就用这个了 直接在自己的腾讯云服务器上使用 docker pull zookeeper 拉取镜像...

2021-02-27 14:26:25 723 1

原创 webstorm 创建第一个cordova项目

1.下载webstorm打开,创建cordova项目创建的时候可能会提示没安装node或者没有cordova因为我之前创建vue项目的时候自动下载了npm,nodejs所以只要在环境变量配置一下path这里就可以自动检测了安装cordova npm install -g cordova 官网说明2.创建之后项目之后需要添加平台cordova platform add android3.cordova build 会报错 没有安装gradle需要下载gradle ...

2021-02-03 11:06:21 305

原创 oracle scott 解锁

远程服务器使用docker安装了oracle数据库,下面是如何解锁scott1.进入oracle11g 容器docker ps -a 查询所有容器docker exec -it oracle11g /bin/bash进入容器内部2.sqlplus / as sysdba 使用sqlplus 连接数据库3.解锁 scottalter user scott account unlocked;//分号不能少,指令结束alter user scott identified by ..

2021-01-28 16:51:05 324

原创 C++中的&和&&

瞎扯淡:最近抽空看了一下有关Android 进阶方面的书,大概可以分为两个方向:1.应用层(框架源码阅读分析、设计模式分析)其实就是对java 各个数据结构的把握(数组、队列、栈、集合),比如glide 各级缓存的原理,就是说各级缓存的通过java的数据结构实现了各级缓存,之前一直跟着别人怼源码,但并没什么用,源码调用太长太多三遍甚至10遍根本记不住,但是如果你知道各级缓存用的是什么实现的,业务逻辑你自己也可以实现了。2.偏向底层的:linux 内核层,硬件抽象层,c++/c nativelib

2020-09-01 18:36:10 455

原创 NullPointerException: androidx.fragment.app.FragmentManagerImpl.isDestroyed()

ft.replace(R.id.main_frame_layout, fragment, flag);项目升级到AndroidX之后切换fragment的时候突然报错NullPointerException: androidx.fragment.app.FragmentManagerImpl.isDestroyed()改成hide和show 都没问题,网上找到的资料说是androidx版本低于 某个版本会出现这个bug,为了解决这个bug 项目的baseFragment里面添加了下面的代码..

2020-08-11 17:13:42 990 1

原创 Android 29 创建文件夹失败

AndroidStudio最近更新到了4.0,在写demo测试的时候发现无论怎么动态申请权限,创建文件夹的时候总是返回false,看了一下源码的相关注释结合网上的资料,好像是说为了用户的隐私还是神马不允许直接在根目录创建文件夹了! String[] permission = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; int granted = ActivityCompat.checkSelfPermission(this, Manife

2020-07-31 17:08:09 813

原创 Android事件分发mFirstTouchTarget的思考

1.ViewGroup 1)dispatchTouchEvent如果决定拦截那么会回调super.dispatch,即是把自己当作View来处理事件。问题1.如果viewgroupe 拦截了事件,子view还能接收到事件吗?思考:上面的代码里面如果拦截了不会去遍历子view触发子view的dispatch事件,而是会遍历mFirstTouchTarget,而mFirstTouchTarget是在没有拦截的时候遍历子view赋值的,所以如果Down事件拦截了,那么mFirs..

2020-07-29 10:36:24 2082 3

原创 OPENGLES 2.0 绘制一个坐标轴

之前学会了基本图形的绘制,本来打算立刻弄一个触摸->平移、旋转、缩放的,但是发现如果没有坐标轴的话单凭感觉画出来的东西跟自己的意图总是不太一致。还是得先搞好基础public class Axis extends Shape { float[] axis = { 0f, 0f, 0f, 100, 0, 0, 0, 100, 0, 0, 0, 100, }; //X轴、Y轴、Z.

2020-07-14 15:14:21 696

原创 从Android手机中取出已安装的app包,导出apk

之前看到的一篇文章,亲自试过可用导出步骤:1)找到应用的包名执行命令:$ adb shell pm list package输出结果:package:com.xiaomi.miui.screenrecorderpackage:com.android.providers.telephonypackage:com.miui.powerkeeperpackage:com.android.providers.calendarpackage:com.ximi.vipaccount

2020-07-08 15:09:36 3972

原创 OPENGL_ES20 立方体、球型绘制

绘制流程跟2维图形绘制一致,只是坐标需要自己去计算。圆柱体、圆锥、球型,其实就是绘制一个一个的圆形,将他们无限分割就是一个一个的圆//立方体public class Cube extends Shape { private FloatBuffer vertexBuffer; private FloatBuffer colorBuffer; private ShortBuffer indexBuffer; private final String vertex

2020-06-30 16:20:00 399

原创 Opengles 2.0 使用Matrix 让三角形、圆形、等不会因为手机的长宽比被拉伸

应用投影和相机视图在 OpenGL ES 环境中,通过投影和相机视图,显示的绘制对象更接近于眼睛看到的实物。这种对看实物的模拟是通过对绘制对象坐标进行数学转换完成的:投影 - 这种转换可根据显示绘制对象的GLSurfaceView的宽度和高度调整绘制对象的坐标。如果不进行这种计算,由 OpenGL ES 绘制的对象会被不等比例的视图窗口所扭曲。通常只有在 OpenGL 视图的比例确定下来或在渲染程序的onSurfaceChanged()方法中更改时才需要计算投影转换。如需详细了解 OpenG...

2020-06-29 16:25:38 503

原创 OpenGL ES2.0 绘制圆形

Opengles 绘制的方式int GL_POINTS //将传入的顶点坐标作为单独的点绘制int GL_LINES //将传入的坐标作为单独线条绘制,ABCDEFG六个顶点,绘制AB、CD、EF三条线int GL_LINE_STRIP //将传入的顶点作为折线绘制,ABCD四个顶点,绘制AB、BC、CD三条线int GL_LINE_LOOP //将传入的顶点作为闭合折线绘制,ABCD四个顶点,绘制AB、BC、CD、DA四条线。int GL_TRIANGLES //将传入的顶点作为单独的三角.

2020-06-28 12:31:09 1839

原创 JNI DETECTED ERROR IN APPLICATION: jarray was NULL

项目中用到了opengles去展示三维点云数据,个人比较生疏,所以打算学一学。根据官方的示例先画了一个三角形,后面在画方形的时候怎么都不成功,报错:JNI DETECTED ERROR IN APPLICATION: jarray was NULL。可是对比别人的代码和自己的代码,根本看不出有什么区别,从别人的博客中看到以下内容:在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式

2020-06-28 10:18:04 1428

原创 Media projections require a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PRO

老项目里面用到了录屏,最近要把录屏功能改成录屏直播,自己把EasyPusher里面的代码改了一下放到自己的项目里面用了。发现一个奇怪的现象,之前好好的demo 居然不能用了,但是项目里面的还可以用,搜了一些解决办法,都没能解决。最后答案竟然是这样:试了一下把29 改成28 果然就不报错了...

2020-06-08 12:00:44 8947 2

原创 记录一下回编译apk

之前一直都是反编译别人的apk用来学习,2、3年前android那时基本没有人会想到加固,现在是各种加固,想学也没得学了。之前没有回编译过,不过现在拿到了一个没有加固的apk,但是需要验证登录mac地址,很麻烦,就想修改smali之后重新打包成一个apk使用。一直用的是apktoolbox,这个工具用了两三年,之前太菜各种cmd指令不太会弄,图形化界面比较方便。具体步骤:1.反编译得到一个文件夹2.将文件夹拖到目录里面,直接点回编译报错:这里很奇怪,反编译之后直接回编译居然报错3.jav

2020-06-05 17:46:36 308

原创 Gerrit 创建分支

一、为什么要做分支管理:1.发了版本需要做一个版本分支,如果此版本出了bug 可以切换到此版本修改bug,以后可能在某一个版本节点上延伸出新的分支2.需要一个开发版的分支用来开发新的功能,因为很多情况下都是开发没开发完又发现了紧急bug,这个时候不能用当前的代码马上打包修复bug二、之前搭好了一个gerrit 代码服务器,只记录一下创建分支的流程1.创建分支直接去gerrit 界面创建分支,名字按照自己的需求填写,初始化版本->指定一个master 提交的版本SHA12..

2020-06-01 18:29:50 9144 1

原创 华为M6平板在录屏的时候报错SIGABRT

Bugly上显示的问题详情可以看到是.so 里面jni_callback出现了问题,网上找了一下大部分是说cpu架构兼容啥的,这个库用的第三方的有arm64的.so 所以肯定不是兼容问题,后面尝试用DEBUG模式编译,跑起来就不报错了。后面在混淆文件里面添加了不要混淆这个库就好了。这里报错应该是jni_call 的参数类型以及返回类型被混淆了导致,加上之后就可以了。...

2020-05-27 13:25:50 507

原创 百度TTS偶然so报错的问题

某些情况下使用百度TTS文字转语音会导致程序闪退 //百度tts 不兼容的问题 implementation 'org.apache.httpcomponents:httpclient:4.4.1'花了一些时间才找到解决办法

2020-05-15 09:41:55 867 1

原创 android 加固之后给应用重新签名

一.工具介绍jarsigner是JDK提供的针对jar包签名的通用工具,位于JDK/bin/jarsigner.exeapksigner是Google官方提供的针对Android apk签名及验证的专用工具,位于Android SDK/build-tools/SDK版本/apksigner.bat不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),以上两个工具都可以对Android apk包进行签名.1.V1和V2签名的区别在A

2020-05-15 09:36:08 1744

原创 修改第三方的aar重新打包

去年去了外包,说好的不加班原来是不付费加班。祖传项目做二次开发,结果里面自己研发的aar包没有代码,核心的东西都在里面,真实服了。里面有很多bug,重新写又没时间。只好修改aar包里面报错的地方重新打包使用。具体步骤:1.复制一份aar出来,改后缀(直接在.aar后面加上.zip)2.将里面的classes.jar 拷贝出来(记得不要解压,直接复制)3.新建一个项目,将要修改的类的代码从原项目中复制粘贴到新项目。新项目引入依赖之前的aar。当然此时里面会报各种错误..

2020-05-09 09:21:18 1515

原创 windows adb 识别不了设备

在连接android 设备的时候一直发现不了设备,印象中是驱动安装失败了,很纠结。打开设备管理器发现有两个其他设备是黄色的感叹号,先把这两个卸载掉,重新连接设备会提示你安装,当你选择了从windows中心安装的时候会一直转圈圈,就是因为windows不知道这个设备是啥没办法指定 驱动。解决办法:直接在设备管理器,右键更新驱动程序,选择从本机寻找安装,然后选 android adb inte...

2020-03-13 16:25:38 927 1

原创 将AndroidStudio 里面的repository 替换为阿里云

allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/public' name 'replace jcenter() and mavenCentral()' } maven { ...

2020-01-17 15:35:08 1889

原创 List的 for 循环引发的惨案

最近在项目中要加载一批点的坐标,这些点差不多有10万个点,反编译使用了别的的代码,其中有一个循环,是遍历这些点然后找出距离第一个最远的点和最近的点。奇怪的是,别人的很快就能加载完这些点,我的要20秒左右才能加载完,最后做了一下测试:基本上循环里面什么也不做只是从List 里面逐个取出元素就花了20秒,意味着我的循环里的其他代码基本没花时间。实在想不通,后面直接将List.toArray()...

2019-12-11 18:15:22 115

原创 gerrit+git+apach +nginx

第一次部署代码服务器,用了大概一周时间!看了很多博客最后才搞定!对linux 系统非常不熟,还重装了一次系统!第一次成功之后,以后再部署应该就没什么难度了。这里有几个关键点:1.下载timeshift 备份系统,这一步非常关键,因为ubuntu不知道什么时候就崩了,我就遇到过一次什么软件都打不开,重启之后干脆连开机都开不了了,最后没办法只能重装系统。重装系统之后先别做什么更新啊什么...

2019-11-26 18:30:33 388

原创 设置了 Bitmap.Config.RGB_565 无效

项目里面看到一张图片占用内存很大,想优化一下首先是用了glide,但是发现设置了format 跟不设置是一样的,非常不理解后面又想用android 原生的API 来解析图片,以为这样就可以生效了 BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredCon...

2019-11-26 17:23:35 1881

原创 Android 面试 Service

Service 虽然被叫做后台服务,但其实它也是在主线程运行的。Service 有20秒超时ANR ,这里应该是指Service 的生命周期方法 @Override public void onCreate() { Log.i(TAG, "onCreate: "); super.onCreate(); try { ...

2019-10-15 11:01:08 128

原创 Android 面试 ContentProvider

ContentProvider 作为四大组件之一,讲道理工作中应该经常用到才对,但是做了三年android 开发却没怎么用,在之前启动相机拍照的时候有用到FileProvider 去获取图片(android7.0之后获取图片文件的权限问题)。ContentProvider 的使用 实现原理底层也是binder1.继承ContentProvider 实现方法,需要注意的是这几个方法返回的都是...

2019-10-14 11:32:42 328

原创 FileProvider 学习笔记

1.FileProvider 继承Provider2.使用步骤: 1.在项目 res/xml 里面新建一个 paths.xml 文件<?xml version="1.0" encoding="utf-8"?><paths xmlns:android="http://schemas.android.com/apk/res/android"> &...

2019-10-14 11:31:53 176

原创 Android 面试相关-Activity

Android 知识四大组件相关1.)Activity 的生命周期正常: onCreate(创建)->onStart(可见)->onResume(运行可交互)->onPause(暂停,不可 交互)->onStop(不可见)->onDestroy(销毁)异常:1.用户按下Home键(魅族测试): onPause->onSaveI...

2019-10-11 16:52:28 100

原创 Android StatusBar 的颜色

Android 5.0以后支持statusbar 更换颜色,6.0以后支持夜间模式 /** * 设置状态栏的颜色 */ protected void setStatusBarColor(int color, boolean lightTheme) { if (lightTheme) { if (Build.VERSION...

2019-10-11 13:56:55 717

原创 SlidingPaneLayout 实现滑动退出Activity

public class SwipeBackLayout extends SlidingPaneLayout { private static final String TAG = SwipeBackLayout.class.getSimpleName(); private boolean supportSwipeBack = true; private int maxE...

2019-09-18 17:42:30 172

原创 android 事件分发复习

//1.事件在Activity 中的传递 public boolean dispatchTouchEvent(MotionEvent ev) { //按下事件 if (ev.getAction() == MotionEvent.ACTION_DOWN) { onUserInteraction(); //空方法...

2019-09-18 16:49:55 82

原创 <item name="android:windowIsTranslucent">true</item> 对Activity 声明周期的影响

<item name="android:windowIsTranslucent">true</item> 是否将页面设置为半透明在Activity 设置这个属性之后会影响Activity的声明周期1.如果Activity A 的THEME里面设置了这个属性之后,从A 跳转到 任意Activity B(不考虑A 需要出栈的情况),A 将执行 onPause() 但不会...

2019-09-17 12:12:56 650

原创 数据结构->并发之Lock

1.什么是锁? 锁是用来控制多个线程访问共享资源的方式,一般来说,锁是用来防止多个线程同时获取共享资源。在java 1.5 之前,使用synchronized 关键字来实现锁的功能,1.5之后提供了lock 接口,虽然lock接口失去了synchronized 隐式获取和释放锁的便捷,但是却提供了获取和释放锁的可操作性,可中断的获取锁以及超时获取锁等 synchronized 等不具备的...

2019-09-10 12:20:14 282

原创 Android studio 安装失败

最近升级Android studio 到3.4 作为测试备份了一下以前的老项目,copy之后打开,直接运行一直都装不上去,总是提示文件找不到,clean->invalidate and restart 了好多次,还是一样。然后就关闭了instantrun,这回成功了,但是项目里面只要是import 的class 全部爆红!又invalidate 一次终于好了,然后再打开instantrun...

2019-09-05 15:05:49 1493

原创 android dialog 隐藏虚拟按键

试了网上很多的方法,都没什么用,最后抄的 google 开发者网站上的代码 public static void hideSystemUI(Window window) { // Enables regular immersive mode. // For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE....

2019-08-15 11:41:48 1955 2

原创 because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

webgl demo 的时候总是提示这个,完全找不到错误原因在哪。google 里说是什么 (检测保护)反正就是不太看的懂,后面想起来 script 引入three.js 的引入方式是有要求的,不能是/js/three.js 具体看文档吧,改成<script type="text/javascript" src="../js/three.js"></script&g...

2019-08-11 21:02:07 44201 3

原创 MyBatis 批量插入

1.遇到问题insert at least 1 column 报错说 至少插入一列错误的语句:select (studentcode,roomcode,n_x,n_y)from 把括号去掉->select studentcode,roomcode,n_x,n_y from2.Column count doesn&#39;t match value count a...

2019-08-06 11:26:35 188

转载 jsp访问WEB-INF下面的资源-jsp

最近个人项目里面用到了iframe 标签,想通过这个标签引入其他的jsp 文件,copy一个 水波纹的效果但是这个jsp 文件是在本地的,无论写相对路径还是 绝对路径都无法加载,查了半天始终不得要领。后面查了别人的博客:https://blog.csdn.net/eidolon8/article/details/7050114原来web-info 是无法直接访问 里面的文件的,也就...

2019-07-30 11:18:53 706

百度语音官方demo

百度语音识别官方demo,本文档是百度语音开放平台Andriod SDK的用户指南,描述了在线合成等相关接口的使用说明。 合成的策略是边下载边播放。区别于Rest Api一次性下载整个录音文件

2019-03-05

adapter-rxjava-2.4.0.jar

adapter-rxjava-2.4.0.jar 包

2018-03-28

空空如也

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

TA关注的人

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