自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 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 2429 3

原创 Flutter(三):实现Flutter代码调用Android原生代码(创建WebView Plugin)

本文实现flutter代码调用Android原生Webview(本文比较长)1.新建一个Flutter项目2.在项目根目录下右键new>module>flutter plugin3.自动生成如下图所示项目结构其中webview_plugin就是我们新建的WebView插件,名字可以自由命名。展开webview_plugin文件夹的结构如下:我们目前只...

2018-08-07 00:51:01 18969 14

原创 Flutter(二):实现网络请求、json解析、ListView展示数据

效果图如下,用的接口数据是聚合数据的历史今日的接口首先看Flutter的网络请求实现,我暂时简单实现了,放在HttpController里,实现代码如下:import 'package:http/http.dart' as http;class HttpController { static void get(String url, Function callback, ...

2018-07-25 22:03:28 21297 2

原创 Flutter(一):用BottomNavigationBar实现底部导航栏架构

效果图(左ios右Android):主要涉及到5个文件,main.dart是程序入口,MainPage.dart是主要界面(相当于Android中的MainActivity),HomePge.dart、FindPage.dart、MinePage.dart分别是首页、发现、我的。首先看Main.dart代码:import 'package:flutter/material.d...

2018-07-23 19:10:39 26383 4

原创 error: RPC failed; curl 18 transfer closed with outstanding read data remainingfetch 解决办法

$ git clone --depth 1 仓库地址$ git remote set-branches origin ‘你想拉取的分支名称’$ git fetch --depth 1 origin 你想拉取的分支名称’$ git checkout 你想拉取的分支名称’

2021-03-19 19:34:42 214

原创 2020年了你还不会JetPack之LifeCycle

LifeCycle简介及使用场景JetPack架构组件之一,谷歌爸爸官方出品,方便开发者管理Activity或者Fragment的生命周期,所谓管理,其实就是我们需要在生命周期方法里做写很多重复的业务逻辑,譬如一个项目有100个Activity+200个fragment,现在有个需求是要在他们的生命周期方法onResume或者onPause里埋个点做个记录,这时我们以前的做法大多是在BaseAc...

2020-04-28 00:29:47 325

原创 实现阴影背景

自定义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 444

原创 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 4251 1

原创 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 573

原创 使用SQLiteStatement提高sqlite的插入速度

创建数据库SQLiteDbHelper dbHelper= new SQLiteDbHelper(this, "mydb", null, 1);SQLiteDatabase database = dbHelper.getWritableDatabase();dbHelper.createTable();利用SQLiteStatement插入数据,可大幅度提高效率SQLiteDa...

2019-06-19 15:34:09 1177

原创 ANR问题Log分析

分析问题思路:了解用户的操作流程,查看错误出现的设备,app版本,及相关分支代码-->查看log里的堆栈信息及用户操作轨迹-->复现问题-->检查由堆栈信息里反应出来的相关的类和方法--> 检查项目代码逻辑 --> 检查trace信息 --> 检查自己项目的cmd line :项目包名 下的每个线程的信息 --> 再检查cmd line: system_...

2019-06-19 12:13:52 5059

原创 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 256

原创 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 1370

原创 Android DirectBoot模式

DirectBoot(简称DB)是Android N新引入的一个特性,本质上是对数据访问做了限制。在用户开机但未解锁之前,应用只能访问这个安全区内的数据,从而保护用户隐私安全。Android N上把数据分成了两块,分别是:1、凭据保护存储区(credential-protected),这是所有应用的默认存储位置,仅在用户解锁设备后可用。2、设备保护存储区(device-protected...

2019-06-19 11:28:40 4683

原创 JVM、Dalvik、ART

Java程序执行过程类加载器JDK提供了三种类ClassLoader,分别是BootstrpLoader(根加载器)、ExtClassLoader(拓展类加载器)、AppClassLoader(java默认的加载器),类加载动态性,先将基础类加载到JVM里,剩余的类会在需要的时候加载到JVM里。 双亲委托机制加载一个类之前会判断该类是否被当前类加载器加载过,如...

2019-06-19 11:24:18 206

原创 设计模式--单例模式最佳实践

1.double-check懒汉模式public class Singleton { private Singleton() { } private static Object INSTANCE = null; public static Object getInstance() { if(INSTANCE == null){ ...

2019-04-01 16:06:30 143

原创 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 30725 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 265

原创 解决设置沉浸式时华为手机底部导航栏兼容性问题

在设置沉浸式时,华为手机底部导航栏会覆盖app的真实内容,提供以下解决方案:判断是否有导航栏并且获取高度,然后给window的content设置paddingpublic static int getNavigationBarHeight(Context context) { boolean hasMenuKey = ViewConfiguration.get(conte...

2019-01-29 19:32:15 3326

原创 实现一个简单的柱状图表

效果图如下:自定义控件代码: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 2369

原创 完成第一个微信小程序组件

身体有九个基础指标,为了不重复写同样的代码,写了一个进度条组件:创建一个组件叫progressprogress.json的代码{ "component": true, "usingComponents": {}}progress.wxml的代码&lt;!--pages/bodyScale/progress/progress.wxml--&gt;&lt;view ...

2018-12-10 15:39:09 395

原创 Android获取手机通讯录信息

List&amp;lt;Contact&amp;gt; list = new ArrayList&amp;lt;&amp;gt;(); Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); int cont...

2018-11-13 00:32:56 3520 2

原创 Flutter问题集合(持续记录更新)

1.Waiting for another flutter command to release the startup lock解决办法:打开flutter的安装目录/bin/cache/ ,删除lockfile文件 ,重启AndroidStudio

2018-07-24 18:33:17 1034

原创 ViewPage怎么更新数据

更新数据之前执行以下代码if (dataViewPage.getAdapter() != null) { FragmentManager fm = getActivity().getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); @SuppressLint("Restricte

2017-11-07 18:03:22 980

原创 Android开发中的小积累

获取Recycleview当前屏幕可见item,并且拿到任何一个可见item的viewJAVA精确运算获取View在屏幕的中距离获取状态栏高度

2017-09-21 19:14:02 341

原创 关于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 59114 5

原创 Android实现多进程方式及注意

Android中实现多进程的方法是在清单文件(AndroidMenifest)中指定android:process属性; :代表的是在当前的进程名前面加上包名,而且这样表达的进程是属于当前应用的私有进程,而不以:开头的命名的进程属于全局进程,其他应用可以通过相同的ID(系统为每个进程分配一个唯一的ID)····。IPC方式:AIDL,Messenger,Bundle,文件共享,ContentProvider

2017-06-29 15:36:16 964

原创 用Dialog实现底部弹窗

有时要实现各种各样的弹窗,譬如选择支付方式的时候,很多APP就会选择由底部弹上来的。如图:下面是Dialog的实现:public class ChoosePayStatusDialog extends Dialog { private LinearLayout aliPayLly; private LinearLayout weixinPayLly; public ChooseP

2017-06-27 17:18:34 1591

原创 关于给Dialog设置setCanceledOnTouchOutside(true)后如何监听Dialog消失

我们设置点击Dialog以外的区域时Dialog消失的设置如下:dialog.setCanceledOnTouchOutside(true);首先看Dialog的 setCanceledOnTouchOutside(true)的方法里究竟是什么代码,点击进入Dialog的源码可以看到方法public void setCanceledOnTouchOutside(boolean cancel) {

2017-05-28 19:45:53 11846 1

原创 Android,布局(layout)转化成bitmap,再生成文件

Android,布局(layout)转化成bitmap,再生成文件。

2017-05-26 17:52:56 8416 4

原创 第一个Kotlit Android项目

Kotlin介绍及项目配置,学习Kotlin,从构建第一个Kotlin项目开始,谷歌在 5/18 举行的 I/O 开发者大会上宣布,将 Kotlin 语言作为安卓开发的一级编程语言,Kotlin 成为了 Android 界的 Swift-Kotlin是一种兼容Java的语言;-Kotlin比Java更安全,能够静态检测常见的陷阱。如:引用空指针;-Kotlin比Java更简洁,通过支持variable

2017-05-18 23:15:35 462

原创 Android混淆整理

代码混淆规则指定代码的压缩级别 -optimizationpasses 5是否使用大小写混合-dontusemixedcaseclassnames是否混淆第三方jar. -dontskipnonpubliclibraryclasses混淆时是否做预校验 -dontpreverify混淆时是否记录日志 -verbose混淆时所采用的算法:-optimizations!code/simplificati

2017-03-28 21:12:27 399

原创 蓝牙实现签到功能(中央与周边)

谁做server(中心),谁做client(周边),则取决于具体数据传输的情况。 1、如果活动追踪的BLE设备需要向 Android设备传输数据,则BLE设备自然成为了中心端(server); 2、如果活动追踪的BLE设备需要从Android设备获取更新信息,则 Android设备作为中心端可能更合适。由于搜索需要尽量减少功耗,因此在实际使用时需要注意: 1、当找到对应的设备后,立即停止扫描;

2017-03-28 01:52:16 7261

原创 整理第三方类库(持续更新)

开始逐步整理以前和以后遇到的一些车轮子,以免以后开发中可以直接拿来使用和学习。github上比较流行的的开源项目都可以从这里查找: https://android-arsenal.com/第三方类库源码解析和类库查找平台: http://a.codekk.com/1.BottomDialog,是一个通过 DialogFragment 实现的底部弹窗布局,并且支持弹出动画,支持任意布局 http

2016-10-25 17:09:58 656

原创 Android webview支持type="file" 打开相机和相册兼容5.0+

既上一篇文章转载了知乎上一位作者的Android webview支持type=”file” 打开相机和相册,发现原来webview上传文件要这么处理,依葫芦画瓢,在测试机上(版本全是4.4的)都没问题,内心很是高兴,但是刚好测试人员有台5.0+的机器,竟然还是调不起相片上传的功能,心理顿时一万只草泥马奔腾而过,心想着是不是代码copy错了,因为功能真的还没到达可以完整copy代码而不犯错的,之前一位

2016-10-22 12:13:11 2491 4

转载 (转载)Android webview支持type="file" 打开相机和相册

Android webview支持type="file" 打开相机和相册,webview调起上传文件的

2016-10-20 17:01:26 407

原创 讨论Bitmap.config参数

注意的一点是:无论图片质量好坏,加载到内存中占用内存的大小只与图片小、Config质量参数配置有关,压缩图片只是让打包的apk减小,而运行时的内存大小是无关的。

2016-10-15 14:03:08 537

原创 Android开发中常用工具方法(1)

Android开发中常用的工具方法:验证邮箱,验证手机号,验证网络是否可以连接,验证wifi是否可以连接,判断当前程序是否在前台,获取屏幕宽高度,获取屏幕截图

2016-10-13 13:58:29 464

原创 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 38230 5

原创 一步到位解决Gradle编译速度慢的问题

Freeline - Android平台上的秒级编译方案 相信很多人都受不了gradle的编译速度,本人目前的项目每次编译平均花费1分30秒左右,而且在编译过程中特别吃内存,电脑偶尔还会卡卡的0.0,不过Freeline的到来彻底解决了这个问题,因为使用了Freeline之后编译一次时间降低到10秒之内,快时更加恐怖的达到2秒多,这里要特别感谢和膜拜一下蚂蚁聚宝的大牛们的贡献!!!

2016-09-12 11:13:30 8992

空空如也

空空如也

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

TA关注的人

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