Android
文章平均质量分 92
May Hacker
无所谓才能无所畏!我会变得更强!
展开
-
Anroid SIGSEGV(SEGV_MAPERR)可能的解决方案
前言最近App闪退,通过Bugly监控看的一头雾水,都是一些底层库的东西,并且并不是可复现的。Bugly提供信息不过好在Bugly有跟踪日志在日志的最后看到了红字 IMemory : cannot map BpMemoryHeap (binder=0x9b2af780), size=18665472, fd=87 (Out of memory)什么?我OOM了?但是我在开发的过程中,明明通过LeakCancy内存泄漏神器进行了周密的内存泄漏排除鸭。并且问题并不复现,在思考了两三天后,并原创 2020-10-18 23:12:16 · 4791 阅读 · 4 评论 -
Androud 如何区分USB设备
在获取到USBDevice后,我们可以调用它的getSubClass()和getDeviceClass()方法来唯一标识。例如 if (usbDevice.getDeviceSubclass() == 0 && usbDevice.getDeviceClass() == 255) { } 那如何知道每个设备的这些种类呢,主要有两种方法,一是在开发中,遍历打印知道后再次开发。二是去Android 官方文档查找判定。传送门如下https://developer.android原创 2020-09-03 22:36:47 · 631 阅读 · 0 评论 -
Android 设置权限后listFile仍返回null的可能解决方案
Mark一下android6.0之后对READ和WRITE 存储需要动态运行时权限我是对/storage/emulated进行listFile操作,发现返回null,并经检查这个emulated其实是不可读的,这跟Linux的lrwx文件权限有关,但是我发现/storage/emulated/0是可读的,这就好像:你在windows图形化界面一层一层打开一个文件发现打不开,但是直接通过文件地址栏输入全路径就可以,这在Linux上是允许的。...原创 2020-08-27 07:13:31 · 1212 阅读 · 0 评论 -
Android Camera 修改预览分辨率PreviewSize
Camera 类 下Parameters类有个setPreviewSize方法可修改预览尺寸,但是需要注意的是,源码给出了说明,如果要改,需要先停止预览,再改。所以正确地修改,应该如下图所示/** * 更新预览分辨率 * @param size */ public void changePreviewViewSize(Camera.Size size) { mCamera.stopPreview(); Camera.Para原创 2020-06-01 12:47:58 · 5537 阅读 · 2 评论 -
使用 Android Size Analyzer缩减应用大小
前言Android Size Analyzer 工具可让您轻松地发现和实施多种缩减应用大小的策略。它可以作为 Android Studio 插件或独立的 JAR 使用。如何使用在 Android Studio 中使用 Android Size Analyzer您可以使用 Android Studio 中的插件市场下载 Android Size Analyzer 插件,如图 1 所示。要打开插件市场并安装该插件,请按以下步骤操作:依次选择 File > Settings(或在 Mac 上,依次原创 2020-05-22 11:50:05 · 1484 阅读 · 0 评论 -
android studio TextClock 导致 render problem
android studio 3.6 ,今天突然render problem,debug 了半天,尝试了各种方法,后来删掉textClock 就恢复正常java.lang.NullPointerException at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2263) at android.widget.TextClock.registerObserver(TextClock.java:原创 2020-05-13 16:40:05 · 1212 阅读 · 5 评论 -
Android 获取Inflate得到的view的宽度高度
最近需要控制popwindow的位置,想要通过获取popwindow的布局高度来计算合理位置,以适配各种需求。发现view.getHeight得到的是0.解决方案可以通过view.getMeasuredWidth(), view.getMeasuredHeight()两个方法来获取 view = getLayoutInflater().inflate(R.layout.dialog_layout_verical, null); view.measure(0,0); popwindow =原创 2020-05-10 15:06:52 · 1470 阅读 · 0 评论 -
Android profier工具一启动导致app Crash ,Fatal signal 11 (SIGSEGV), code 0 (SI_USER)
最近两天,博主在开发一个引用第三方SDK的so包的app,完工之后想要通过android studio 工具自带的prifier在荣耀v9真机运行,来分析内存泄漏和性能测试问题。结果一启动就crash,最骚的是,正常使用都没问题。最后在蓝叠模拟器上运行,发现没问题。可能是华为手机的底层lib和第三方使用的sdk有冲突。值此记录一下,也希望能帮助到遇到同样问题的小朋友,尽快脱坑!...原创 2020-05-08 16:05:16 · 3800 阅读 · 2 评论 -
蓝叠模拟器Installation did not succeed. Installation failed due to: 'closed'
报错重述:由于最近项目要用到支持arm架构的模拟器,故使用蓝叠,安装报错如下Installation did not succeed.The application could not be installed.Installation failed due to: ‘closed’Retry解决方法:默认蓝叠没有开启允许ADB连接,开启即可。打开设置勾选允许...原创 2020-05-08 16:01:13 · 2126 阅读 · 3 评论 -
andorid popwindow全屏显示时获取到的屏幕高度偏小
有这样一个需求,使用popwindow来显示全屏,做一个屏保的功能。之前使用下面代码来获取,但是发现真正给到popwindow去显示的时候,高度略低,非常丑陋。//获取屏幕宽度和高度 DisplayMetrics dm = getResources().getDisplayMetrics(); int w_screen = dm.widthPixels; ...原创 2020-05-05 14:09:05 · 427 阅读 · 0 评论 -
Bugly集成 SDK仍不上报crash信息
经log发现 是发上报请求没回应,原因是Goolg为了安全起见,不支持http请求,可在android 的manifest.xml中增加android:usesCleartextTraffic="true"即可。原创 2020-05-04 14:14:24 · 959 阅读 · 0 评论 -
The layout "xxx" in layout has no declaration in the base layout folder; this can lea
检查xml文件名称是否包含大写,如果包含大写改成小写即可。原创 2020-05-01 17:20:14 · 12772 阅读 · 18 评论 -
ERROR: Failed to resolve: com.github.PhilJay:MPAndroidChart:v3.1.0
注意指定maven仓库地址 maven { url 'https://jitpack.io' }allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } }}注意,是在project的build.g...原创 2020-04-10 13:19:59 · 5809 阅读 · 4 评论 -
Android 内存泄漏利器-LeakCanary(最新使用)
前言LeakCanary is a memory leak detection library for Android.上面是官方文档给出的介绍,LeakCanary是一个在android上检测内存泄漏的依赖。使用方法只需要在你的build.gradle中添加如下依赖即可。debugImplementation ‘com.squareup.leakcanary:leakcanary...原创 2020-03-14 12:23:10 · 3409 阅读 · 9 评论 -
Android 反编译(使用Android studio) 与防止反编译
反编译1. 直接将APK文件拖到Android Studio 中即可就可以看到一些资源文件,以及一个名为class.dex的文件,这个问题至关重要,apk打包时会通过jdk环境将java文件编译为.class文件,android再将.class文件转为.dex文件。2.如果想看看源代码点击即可,android studio会帮我们解析可以看到包文件名都是乱的,而且当你找到程序文件时...原创 2020-03-11 12:35:03 · 7623 阅读 · 0 评论 -
Android 实现全局dialog
需求最近项目需要实现这样一个需求,当外来数据进行注册时,需要提示progressDialog,而外来数据是在子线程中,需要handler加持,这样的话就需要很多handler的code,所以我打算在Application中去实现这样一个功能。原理ProgressDialog 显示需要非ApplicationContext的上下文来依附,所以我们不能使用getApplicitionContex...原创 2020-03-11 10:40:40 · 1311 阅读 · 0 评论 -
Android 屏保实现
一、原理当达到某一条件时超过一段时间时,弹出popwindow,大小为全屏,当条件不满足或者用户点击时,让popwindow消失。二、屏保界面实现上图中的转圈动画是转圈的,使用的是这位大佬的,详情使用,可以看看https://www.jianshu.com/p/4732d8ae61fe新建layout文件,如下<LinearLayout xmlns:android="http:/...原创 2020-03-04 18:19:56 · 5679 阅读 · 1 评论 -
Gson使用 将json数据转换为List 对象数组
一、导入依赖implementation ‘com.google.code.gson:gson:2.8.6’实例使用Gson gson = new Gson();List<StudentInfo> studentInfoList = gson.fromJson(requestBody.string(),new TypeToken<List<StudentInf...原创 2020-02-25 12:11:49 · 3043 阅读 · 0 评论 -
【Android】 ViewPager2+Tablayout实现滑动分页
前言ViewPager2是ViewPager的一个升级版,如果我们想要在项目中联动使用,我们需要导入如下依赖implementation ‘androidx.viewpager2:viewpager2:1.0.0-alpha01’implementation “com.google.android.material:material:1.1.0-beta01”需要注意的是,viewPa...原创 2020-02-17 11:00:55 · 5004 阅读 · 0 评论 -
【Android】 使用AndServer框架在手机上搭建服务器
前言在手机上搭建服务器?没错,我自己都会想哪里有人要在把手机当作服务器,不过,确确实实,由于一个项目,我需要这么干。 最初映入脑海的就是Socket原生编程了,直到后来发现了封装成http服务器端的AndServer框架!!!导入依赖 implementation 'com.yanzhenjie.andserver:api:2.0.5'annotationProcessor 'com.ya...原创 2020-02-13 20:31:57 · 4261 阅读 · 4 评论 -
Android 调用相机出现异常 NullPointerException: uri
碰到个很玄学的问题,今天项目需要调用摄像头,由于之前使用过,直接从原有项目copy了。异常信息java.lang.RuntimeException: Unable to resume activity {com.example.androidx/com.example.androidx.activity.FaceDatabaseManage}: java.lang.RuntimeExcepti...原创 2020-02-12 16:33:51 · 1343 阅读 · 1 评论 -
Android 虹软3.0SDK集成相关(人脸1:N视频流)
前言关于如何集成,各个API的作用,大家可以直接去官网看文档。https://ai.arcsoft.com.cn/product/arcface.html在下载SDK后,一定要看一看SDK带的示例demo,由于我的业务需求主要是人脸和视频流之间的对比,如果你跟我一样的画,可以直接看demo中的RegisterAndRecognizeActivity。demo中判断识别成功的位置由于我们一...原创 2020-02-03 20:17:37 · 3855 阅读 · 8 评论 -
ERROR: Minimum supported Gradle version is 5.4.1. Current version is 5.1.1.
对一个老项目demo进行gradle的更换后,报如下错误,经官网https://developer.android.google.cn/studio/releases/gradle-plugin查询后得知,build tool的版本与gradle的版本应该是对应的由于我使用的build tool是3.5.3,所以应该使用gradle版本为5.4.1-5.6.4...原创 2020-01-23 22:20:55 · 15327 阅读 · 1 评论 -
Android studio 打包项目为apk安装包文件
一、Android studio中打开build二、选择apk三、点击create new 四、key store path选择任意位置,选择完成后,把下图中我输入的地方需要输入,内容随意,自己的名字就行五、然后next六、点击next,勾选两个,选择realeaseAndroid 在打包完成后右下角,会提示点击locate,到apk所在的位置打开realease 文...原创 2019-11-15 12:56:33 · 1304 阅读 · 0 评论 -
onCreateViewHolder中获取item位置
通过实例化View 获取holder实例,然后调用holder.getAdapterPosition()来获取位置,如果想获得对应List中的数据,直接根据List.get()该位置即可原创 2019-10-10 15:06:43 · 3709 阅读 · 0 评论 -
Android TextInputLayout 使用及其属性
Android 从5.0版本开始,新增了Android Materia Design库,让开发者高效的实现炫酷的UI效果属性:app:Theme设置下划线或其他的颜色属性android.support.design:counterEnabled是否显示输入长度计数器android.support.design:counterMaxLength设置计数器的最大值,与...原创 2019-05-30 19:07:50 · 8268 阅读 · 0 评论 -
Adapter中实例化Application类
Myapplication myapplication= (Myapplication) mContext.getApplicationContext();其中Myapplication是自己自定义的Application类原创 2019-10-10 15:08:55 · 168 阅读 · 0 评论 -
Android学生信息管理系统之管理端实现
未完待续原创 2019-08-19 13:26:42 · 3854 阅读 · 2 评论 -
android java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
今天在对RecyclerView中的组件进行分别监听时,出现了这样的错误android java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1附上代码 @Override public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { ...原创 2019-10-06 16:43:37 · 6443 阅读 · 4 评论 -
Android 声明网络权限后也无法访问网络
今天遇到一个很奇怪的问题,就是真机加载网络图片的时候,加载不出来,模拟器可以,后来查了查是9.0的原因解决方案imanfest.xml中加入如下属性android:usesCleartextTraffic=“true”...原创 2019-09-30 08:48:49 · 1814 阅读 · 0 评论 -
Android SwipeRefreshLayout实现下拉刷新
主要是利用support.v4.包下的SwipeRefreshLayout这个控件来完成下拉刷新。布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://...原创 2019-06-09 22:31:56 · 593 阅读 · 0 评论 -
Android 界面美化之DrawerLayout(抽屉式布局)+菜单栏导航实现
一、简介DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果。它允许放入两个直接子控件,第一个子控件是在主屏幕显示的内容,第二个子控件是在抽屉中显示的内容。效果图镇楼:**说明:**实现了向右拉出来一个抽屉,和点导航键出来抽屉,导航键拉抽屉是为了防止用户不知道右拉这个功能或者说防止与一些手机的冲突,比如我的android9.0的华为手机,从左边界向右拉是退出。二、使用直接...原创 2019-06-07 01:21:22 · 7388 阅读 · 0 评论 -
Android 美化之Toolbar控件使用
前言:谷歌官方不再推荐使用ActionBar了,推荐使用design风格的Toolbar,所以我们现在来说说Toolbar使用。一、替换掉Actionbar既然要使用Toolbar,就要将原来的Actionbar替换掉。进入AndroidManifest文件,找到使用的主题一般默认是 android:theme="@style/AppTheme"这个的意思是 本app的主题用的是styl...原创 2019-06-06 19:03:52 · 1376 阅读 · 0 评论 -
Android 操作sqlite数据库按照中文排序
把获取到的数据库对象设置地区为中国,如下图:db.setLocale(Locale.CHINESE);这里我的db已经实例化为SQLITEDATABASE对象了然后再order by +列名 + collate localized +asc/desc select * from student inner join student_course " + ...原创 2019-05-27 21:40:46 · 2559 阅读 · 0 评论 -
Android美化之透明状态栏
前言:之前我是把状态栏直接给删掉了,在style中的appTheme中添加这样一条:<item name="android:windowFullscreen">true</item>后来觉得删掉一点都不好,倒不如将状态栏颜色设置成透明笔者参考了郭神的blog,真的很棒!https://blog.csdn.net/guolin_blog/article/detai...原创 2019-06-13 00:12:51 · 523 阅读 · 0 评论 -
Android Studio 运行按钮灰色解决方法
今天新建项目的时候突然发现编译后运行按钮为灰色。解决方案:第一步:点击图中的Add Configuration,出来如下界面第二步:点+号,并选择Android App选项 出来下图所示界面第三步:在Module 中下拉框中选择app如果在Module 下拉框没有app这个选项点击搜索框,输入sync,从搜索结果中选择如下项:点击运行 然后就可以在Module下拉框中发现a...原创 2019-05-16 20:40:59 · 38435 阅读 · 17 评论 -
Android 设置背景透明
XML文件中:半透明 android:background="#e0000000"透明 android:background="#00000000"java代码:View v = findViewById(R.id.content);//找到你要设透明背景的layout 的idv.getBackground().setAlpha(255);//0-255是透明度范围...原创 2019-05-10 21:21:27 · 16416 阅读 · 0 评论 -
Android Imagebutton 动态修改图片
睁眼闭眼图片自取:https://pan.baidu.com/s/1dAXOys91Jufl0566K0fGvw 密码:8sjc图片资源来源:https://blog.csdn.net/qq_33072593/article/details/53749320下面是我的代码和效果:效果如下:Xml文件:<ImageButton android:l...原创 2019-05-10 20:56:50 · 2849 阅读 · 0 评论 -
Android listview+simpleAdapter
废话不多说,直接上图注意:simpleAdapter方法中,第二个参数是你想在这个列表视图子项什么样的布局而写的textview,一般来说你有几个字段就写几个textview就行了。 /***************************************查询所有学生信息*********************************/ case R.id.b...原创 2019-05-07 17:25:03 · 467 阅读 · 0 评论 -
Android Listview设置监听器并获取子项数据
废话不多说直接上图listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long i...原创 2019-05-07 17:22:29 · 1649 阅读 · 0 评论