Android笔记
文章平均质量分 51
假装会写代码
这个作者很懒,什么都没留下…
展开
-
2020年了你还不会JetPack之LifeCycle
LifeCycle简介及使用场景JetPack架构组件之一,谷歌爸爸官方出品,方便开发者管理Activity或者Fragment的生命周期,所谓管理,其实就是我们需要在生命周期方法里做写很多重复的业务逻辑,譬如一个项目有100个Activity+200个fragment,现在有个需求是要在他们的生命周期方法onResume或者onPause里埋个点做个记录,这时我们以前的做法大多是在BaseAc...原创 2020-04-28 00:29:47 · 365 阅读 · 0 评论 -
Android实现录屏和截屏功能
Android实现录屏和截屏功能1. MediaProjectionManager介绍2.所需权限3.示例代码1. MediaProjectionManager介绍用于获取screen capture的主要类,在Android 5.0(Api Level 21)时添加。核心方法:(1)创建:public Intent createScreenCaptureIntent ()Return...原创 2020-04-26 00:44:13 · 2570 阅读 · 3 评论 -
判断手机系统
package com.intexh.speedandroid.utils;import android.os.Environment;import android.text.TextUtils;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.lang...原创 2019-01-29 19:40:54 · 295 阅读 · 0 评论 -
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
AILURE: Build failed with an exception.* What went wrong:Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.> Could not create service of type AnnotationProcessorDet...原创 2019-03-27 13:09:50 · 30841 阅读 · 3 评论 -
Android DirectBoot模式
DirectBoot(简称DB)是Android N新引入的一个特性,本质上是对数据访问做了限制。在用户开机但未解锁之前,应用只能访问这个安全区内的数据,从而保护用户隐私安全。Android N上把数据分成了两块,分别是:1、凭据保护存储区(credential-protected),这是所有应用的默认存储位置,仅在用户解锁设备后可用。2、设备保护存储区(device-protected...原创 2019-06-19 11:28:40 · 4807 阅读 · 0 评论 -
Android StrictMode模式检测内存泄漏
activity启动时会开启StrictMode模式:StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(policy);严苛模式主要检测两大问题,一个是ThreadPolicy和VmPolicy。T...原创 2019-06-19 11:30:25 · 1421 阅读 · 0 评论 -
Android 屏幕适配总结(1)
px = density * dp;density = dpi / 160;px = dp * (dpi / 160);dip或dp是一个意思,即密度无关像素,规定以160dpi为基准,1dip=1px。像素密度计算方法:以5英寸屏幕,分辨率为1920×1080的手机为例:√(1920^2+1080^2)/5 = 441 dpi(每英寸441个像素)如果是4.7英寸的屏...原创 2019-06-19 11:33:26 · 305 阅读 · 0 评论 -
ANR问题Log分析
分析问题思路:了解用户的操作流程,查看错误出现的设备,app版本,及相关分支代码-->查看log里的堆栈信息及用户操作轨迹-->复现问题-->检查由堆栈信息里反应出来的相关的类和方法--> 检查项目代码逻辑 --> 检查trace信息 --> 检查自己项目的cmd line :项目包名 下的每个线程的信息 --> 再检查cmd line: system_...原创 2019-06-19 12:13:52 · 5130 阅读 · 0 评论 -
使用SQLiteStatement提高sqlite的插入速度
创建数据库SQLiteDbHelper dbHelper= new SQLiteDbHelper(this, "mydb", null, 1);SQLiteDatabase database = dbHelper.getWritableDatabase();dbHelper.createTable();利用SQLiteStatement插入数据,可大幅度提高效率SQLiteDa...原创 2019-06-19 15:34:09 · 1208 阅读 · 0 评论 -
Android类加载器的学习总结
1.Java中的类加载器<> BootstrpLoader:C++实现、加载指定的JDK核心类库(java.lang、java.util)、/jre/lib路径下的类库。<>ExtClassLoader:加载java的拓展类,/jre/lib/ext路径下的类库<>ApplicationClassLoader:加载当前程序的Clas...原创 2019-07-03 22:13:10 · 699 阅读 · 0 评论 -
MapBox使用之路线规划
Mapbox的初始化等操作此篇文章不赘述,直接忽略,直接用代码说明怎么使用MapBox的路线规划1.导入implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:6.3.0'implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation:0.41.0'目前MapBox...原创 2019-07-12 21:51:20 · 4355 阅读 · 1 评论 -
实现阴影背景
自定义shadow背景,新建一个drawable<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 第一层阴影 --> <item> ...原创 2019-07-13 16:10:35 · 478 阅读 · 0 评论 -
解决设置沉浸式时华为手机底部导航栏兼容性问题
在设置沉浸式时,华为手机底部导航栏会覆盖app的真实内容,提供以下解决方案:判断是否有导航栏并且获取高度,然后给window的content设置paddingpublic static int getNavigationBarHeight(Context context) { boolean hasMenuKey = ViewConfiguration.get(conte...原创 2019-01-29 19:32:15 · 3435 阅读 · 0 评论 -
实现一个简单的柱状图表
效果图如下:自定义控件代码:import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF;import android.support.v4.content.ContextCompat;im...原创 2019-01-09 17:32:42 · 2422 阅读 · 0 评论 -
Android webview支持type="file" 打开相机和相册兼容5.0+
既上一篇文章转载了知乎上一位作者的Android webview支持type=”file” 打开相机和相册,发现原来webview上传文件要这么处理,依葫芦画瓢,在测试机上(版本全是4.4的)都没问题,内心很是高兴,但是刚好测试人员有台5.0+的机器,竟然还是调不起相片上传的功能,心理顿时一万只草泥马奔腾而过,心想着是不是代码copy错了,因为功能真的还没到达可以完整copy代码而不犯错的,之前一位原创 2016-10-22 12:13:11 · 2522 阅读 · 4 评论 -
整理第三方类库(持续更新)
开始逐步整理以前和以后遇到的一些车轮子,以免以后开发中可以直接拿来使用和学习。github上比较流行的的开源项目都可以从这里查找: https://android-arsenal.com/第三方类库源码解析和类库查找平台: http://a.codekk.com/1.BottomDialog,是一个通过 DialogFragment 实现的底部弹窗布局,并且支持弹出动画,支持任意布局 http原创 2016-10-25 17:09:58 · 673 阅读 · 0 评论 -
讨论Bitmap.config参数
注意的一点是:无论图片质量好坏,加载到内存中占用内存的大小只与图片小、Config质量参数配置有关,压缩图片只是让打包的apk减小,而运行时的内存大小是无关的。原创 2016-10-15 14:03:08 · 562 阅读 · 0 评论 -
(转载)Android webview支持type="file" 打开相机和相册
Android webview支持type="file" 打开相机和相册,webview调起上传文件的转载 2016-10-20 17:01:26 · 453 阅读 · 0 评论 -
Android开发中常用工具方法(1)
Android开发中常用的工具方法:验证邮箱,验证手机号,验证网络是否可以连接,验证wifi是否可以连接,判断当前程序是否在前台,获取屏幕宽高度,获取屏幕截图原创 2016-10-13 13:58:29 · 476 阅读 · 0 评论 -
Android实现多进程方式及注意
Android中实现多进程的方法是在清单文件(AndroidMenifest)中指定android:process属性; :代表的是在当前的进程名前面加上包名,而且这样表达的进程是属于当前应用的私有进程,而不以:开头的命名的进程属于全局进程,其他应用可以通过相同的ID(系统为每个进程分配一个唯一的ID)····。IPC方式:AIDL,Messenger,Bundle,文件共享,ContentProvider原创 2017-06-29 15:36:16 · 1001 阅读 · 0 评论 -
关于Installation failed的情况及解决方案
Android Studio: Application Installation FailedFailure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1028823254.tmp/base.apk (at Binary XML file line #97):原创 2017-07-03 15:19:00 · 59469 阅读 · 5 评论 -
用Dialog实现底部弹窗
有时要实现各种各样的弹窗,譬如选择支付方式的时候,很多APP就会选择由底部弹上来的。如图:下面是Dialog的实现:public class ChoosePayStatusDialog extends Dialog { private LinearLayout aliPayLly; private LinearLayout weixinPayLly; public ChooseP原创 2017-06-27 17:18:34 · 1609 阅读 · 0 评论 -
Android开发中的小积累
获取Recycleview当前屏幕可见item,并且拿到任何一个可见item的viewJAVA精确运算获取View在屏幕的中距离获取状态栏高度原创 2017-09-21 19:14:02 · 372 阅读 · 0 评论 -
ViewPage怎么更新数据
更新数据之前执行以下代码if (dataViewPage.getAdapter() != null) { FragmentManager fm = getActivity().getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); @SuppressLint("Restricte原创 2017-11-07 18:03:22 · 1001 阅读 · 0 评论 -
Android获取手机通讯录信息
List&lt;Contact&gt; list = new ArrayList&lt;&gt;(); Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); int cont...原创 2018-11-13 00:32:56 · 3558 阅读 · 2 评论 -
Fragment 出栈的方法popBackStack需要特别注意的一点
很多时候我们都以为fragment入栈后,譬如 依次入栈 fragment A ,B ,C ,D, 然后弹出B fragment,在回退栈里并不是我们想象的只剩下 D C A ,而是D C null A,所以使用FragmentManager.getFragments(),然后拿List< Fragment >里的对象时特别要注意判空。原创 2016-10-11 23:17:46 · 38575 阅读 · 5 评论