![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
songdongpancsdn
可以不聪明,但不可以不努力!
展开
-
android 7.0版本之后出现FileUriExposedExeception解决办法
问题出现情况下载Apk文件到新建的目录下面是,使用PackageUtils.installApp()方法崩溃,紧接着在文件夹中找到该APK文件,点击却提示"the file format is not supported"。当然,使用App生成其他文件如txt文件也提示无法打开。What?尝试将文件剪切移动或者复制移动后无论放在哪个文件夹中都可以安装。那这是为什么呢?问题查找...原创 2019-02-28 11:11:39 · 300 阅读 · 0 评论 -
GoogleMap的基本使用
1.配置 1、google map和国内的高德、百度地图不同,由于国内的大环境因素,基本厂商将谷歌服务或者GMS CORE框架阉割掉了,不过搜索教程,也可以将缺少的apk打包安装完毕,在找一个免费的vpn,这样就可以使用google地图了。 2、google地图没有过多的添加libs和so文件的过程,这点可能是android就是google的嘛,所以添加过程也减少了不少步骤。 在 android原创 2017-04-27 11:32:19 · 5841 阅读 · 0 评论 -
蓝牙4.0BLE的使用与封装
简单介绍 蓝牙发展至今经历了各个版本的更新。1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2。4.x开始的蓝牙我们称之为低功耗蓝牙也就是蓝牙ble,当然4.x版本的蓝牙也是向下兼容的。低功耗蓝牙较传统蓝牙,传输速度更快,覆盖范围更广,安全性更高,延迟更短,耗电极低等等优点。传统蓝牙与低功耗蓝牙通信方式也有所不同:传统的一般通过socket方式,而低功耗蓝牙是通过Gatt协议来实原创 2017-04-07 14:09:11 · 1588 阅读 · 1 评论 -
Android之Notification的使用与简单介绍
简单的介绍Notification 是app提醒用户发生某件事件的一种方式。它可以:1、显示状态栏图标2、震动3、灯光LED闪烁4、发出声音提醒5、显示额外的信息6、使用交互操作来广播IntentNotification的使用类介绍1、通过getSystemService(Context.NOTIFICATION_SERVICE);获取到NotificationManager;2原创 2017-03-04 22:27:24 · 441 阅读 · 0 评论 -
安卓--网络/GPS/WIFI/3G是否打开的简单封装
package com.sdp.panda.weatherquery.utils;import android.app.LoaderManager;import android.content.Context;import android.location.LocationManager;import android.net.ConnectivityManager;import androi原创 2016-12-07 20:50:44 · 350 阅读 · 0 评论 -
Volley简单的使用
返回json数据类型POST/GETpackage com.sdp.panda.volleytestapp;import android.content.Context;import com.android.volley.Request;import com.android.volley.Response;import com.android.volley.VolleyError;/** *原创 2016-12-07 03:03:37 · 558 阅读 · 0 评论 -
<Android>集成图灵机器人的小demo
需要自己先注册账号注册机机器人,并且得到自己的apiKey接下来就可以使用了,上代码package com.sdp.panda.panpanapp.utils;import com.google.gson.Gson;import com.sdp.panda.panpanapp.bean.ChatMessage;import com.sdp.panda.panpanapp.bean.ResultB原创 2016-12-01 17:08:12 · 2006 阅读 · 0 评论 -
<Android>打造自己的可双击放大、多指缩放、放大等功能的ImageView
不多说上代码package com.sdp.panda.myviewapp.view;import android.content.Context;import android.graphics.Matrix;import android.graphics.RectF;import android.graphics.drawable.Drawable;import android.util.原创 2016-11-30 22:19:13 · 1585 阅读 · 0 评论 -
<Android> 打造自己的进度条
横向的进度条package com.sdp.panda.myviewapp.view;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.原创 2016-11-30 22:06:41 · 383 阅读 · 0 评论 -
Handler的介绍及简单使用
Handler的介绍及简单介绍1、什么是handler? 是android给开发者用来更新UI一套机制,是一套处理消息的机制。2、为什么使用handler? android设计的时候,就封装了一套消息创建、传递、处理的机制,如若不遵循这样的机制就没有办法更新UI,就会抛出异常。 解决多线程并发问题,属于加锁机制。如果没有加锁机制,就会出现更新界面错乱的 所以andr原创 2016-11-30 22:03:36 · 518 阅读 · 0 评论 -
RF射频卡的介绍与与手机NFC的通信
1、简单介绍射频卡的8K位EEPROM分为16个扇区,每扇区由四块组成,每块由16个字节。每个扇区的四块中的块三(第四块)包含了该扇区的KEYA(6字节)、存取控制(4字节)和KEYB(6字节),其余的三块位数据块。在0块至63块中,0块为固化块,其中有厂家代码等特殊内容。它广泛应用在身份鉴别、信用鉴别、自动化控制、安全防范等领域,其安全性、保密性,实用性是目前各种通用防范电路无法比拟的。射频卡是一原创 2017-06-06 16:59:50 · 9785 阅读 · 0 评论 -
NFC基本使用
NFC使用介绍原创 2017-07-07 16:36:29 · 341 阅读 · 0 评论 -
android实现可以滑动的平滑曲线图
直接上代码,里面有详细注解package com.laisontech.commonuilibrary.customviews;import android.animation.Animator;import android.animation.ValueAnimator;import android.content.Context;import android.content.res.Typ原创 2017-09-14 10:21:45 · 3495 阅读 · 1 评论 -
Flutter的基本使用
本文只是针对在Android Studio中的使用1. 在Android studio中下载插件Flutter2.配置Flutter以及Android SDK环境变量, 第一步设置android SDK的路径,并且新建变量值,变量名,变量名为ANDROID_HOME,变量值为SDK的目录所在位置。 第二步设置使用android studio下载的Flutter SDK路径,点击path,...原创 2018-12-25 17:00:02 · 1287 阅读 · 1 评论 -
android项目混淆
Android混淆为什么混淆?因为使用Java语言开发的App很容易被逆向破解,目前市面上已有的Java程序反编译工具有很多中,这些工具可以将代码逆向破解。混淆的作用1、它是一种保存App的技术,可用于App不被破解和逆向分析。2、使用混淆的可将绝大部分的Apk编译之后减少部分体积如一个简单的构建项目,build apk(debug版本)时的体积为1624k,而未使用混淆的relea...原创 2018-07-12 15:15:53 · 458 阅读 · 0 评论 -
GreenDao的使用
项目引入1.在 项目的根build.gradle中引入: repositories { mavenCentral()}dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'}2.在项目的build.gradle引入//引入插件名apply plugin: 'org.greenr...原创 2018-07-03 14:37:09 · 275 阅读 · 0 评论 -
Android Studio怎么构建配置文件(config.gradle)
1、新建config.gradle在android studio的根项目中新建config.gradle文件(和settings.gradble同目录)开始写想要的信息ext { android = [ compileSdkVersion : 26, buildToolsVersion : '26.0.2', ...原创 2018-03-20 18:11:19 · 7269 阅读 · 0 评论 -
android怎么创建在线的依赖库
1.新建Android Studio项目并上传至仓库中1.1 在当前空项目中新建android library moudle1、File–>New Moudle 2、新建moudle3、添加项目中的路径依赖4、在library中添加插件引用 apply plugin: ‘com.github.dcendents.android-maven’ ...原创 2018-03-12 16:17:06 · 662 阅读 · 0 评论 -
android Gradle的配置使用
android项目的编译过程1、将xml文件编译成二进制文件,如果项目中有aidl文件,则将其编译成java文件,一些编译时的JAVA代码被生成R文件。2、java代码为编译成.class文件,最后编译成.dex文件。3、代码文件和资源文件放到一起被打包。4、使用密钥进行安装包的签名,然后进行字节对其的优化。其中每个过程还可以配置详细的参数(比如资源编译处理时的进程数、class编译到dex原创 2017-12-06 14:48:15 · 463 阅读 · 0 评论 -
android性能优化
背景:android程序无法向pc拥有超大的内存和高性能的CPU,故,当app过多的使用内存和CPU资源时,将会出现内存溢出,也就是所谓的oom,如果进行大量的耗时任务,将会使手机变得卡顿甚至程序无法响应,也及时ANR 性能优化: 布局优化,绘制优化,内存泄漏优化,响应速度优化,ListView优化,Bitmap优化,线程优化等性能优化的重要问题就是内存泄漏,它不会导致功能异常,但是它却会到时a原创 2017-10-11 14:36:59 · 241 阅读 · 0 评论 -
Android实现滑动布局使TitleBar文本渐变色
原理想要实现渐变的效果,就需要知道ViewTreeObserver:它是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供。它的实现接口有以下几个:1、当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类。in原创 2017-10-18 15:05:20 · 800 阅读 · 0 评论 -
EditText的聚焦和监听
如果没有刻意设置EditText的各种属性,进入登录界面一般这样显示而想要的效果却是用户点击EditText才会聚焦,并且点击后才会出现删除按钮,也就是用户首次进入登录界面的时候如果已经保存过登录的信息是,不使用自动登录功能时,显示的样式为下图所示:**当用户点击才会出现下图所示的效果**实现这种效果需要:1、在EditText的上一级父类加上这两个属性 android:focusa原创 2017-09-28 10:19:51 · 798 阅读 · 0 评论 -
<Android>Xutils的本地数据库的使用---登录注册等
这个数据库的基本使用上篇中已经讲过了,今天就是怎么实现简单的本地注册登录等功能不啰嗦,直接上代码:1、bean类package com.sdp.panda.pictrueapp.bean;/** * Created by 80926 on 2016/10/20. */public class UserBean { private String name; private St原创 2016-10-20 21:34:57 · 1227 阅读 · 2 评论 -
<Android>本地数据库之--Xutils的使用
导入架包或者在build.gradle中添加compile 'com.jiechic.library:xUtils:2.6.14'想要全局都使用的话,就需要在Application中添加代码public class MyApp extends Application{ private static final String DB_NAME="xutilsDB.db"; publi原创 2016-10-20 20:34:57 · 1311 阅读 · 0 评论 -
<Android>之三级缓存(及封装方法)
为什么使用三级缓存?在当今4G网路的时代中,浏览网页的越来越快,随之而来的就是流量不够用,那么各种app都在往省流量的方向上走着,如果你的app没有缓存,那么用户往回浏览信息又会再刷新一次数据,这样就背道而驰了。所以有了三级缓存的机制了。安卓有一个解决的方法,就是使用LRUCache。什么是LRUCache?意思为最近最少使用算法的缓存三级缓存帮助类及其详解1、首先得理解什么是三级缓存?我们原创 2016-10-20 21:04:56 · 1437 阅读 · 1 评论 -
Android中使用计时器的三种方式
就自己而言知道的三种方式都有:1、handler 2、Timer 3、ScheduleExecutorService(时间执行者服务)1、先写一个图片数组int[] images = new int[]{R.mipmap.1,R.mipmap.3,R.mipmap.3,R.mipmap.4,R.mipmap.5,R.mipmap.6};2、在MainActivity中声明一个全局原创 2016-08-08 17:30:17 · 3356 阅读 · 0 评论 -
Baidu地图在自己的项目中使用(二)
定位步骤1、声明LocationClient类(定位的核心类,启动它之后百度地图进行定位,当定位成功后会调用Listener中的回调方法)2、创建LocationClient的回调接口对象,复写onReceiveLocation方法,接收返回的地址对象3、LocationClient注册监听器4、调用LocationClient.start()方法启动定位功能原创 2016-07-30 14:39:42 · 270 阅读 · 0 评论 -
BaiDu地图在自己的项目中使用(一)
如何使用Baidu地图1、百度地图API的概述2、百度地图的秘钥申请3、百度地图如何配置(权限等)4、百度地图的显示方式(交通、卫星、热力等)5、定位6、覆盖物概述:1、打开百度地图的开发者 2、注册百度账号 3、申请密钥 4、这里面需要做的有 a)先在androidStudio中创建一个应用,名称填写到(创建应用)中。 b)应用类型改为An原创 2016-07-29 17:35:41 · 537 阅读 · 0 评论 -
MultiRecyclerView(多布局的RecyclerView)的简单使用
为什么用到多布局的RecyclerView?在我们日常的软件中,我们看到的页面不像以前一个页面用一个布局,而是有不同的布局组成的一个完成的页面,那么运用多布局的RecyclerView技能解决这个问题,又能够省掉不少代码。上代码1、先新建两个item布局first_itemsecond_item2、在layout_multi中添加代码3、在java代码中添加代码4、新建一个MyAdapter原创 2016-07-27 17:16:12 · 823 阅读 · 0 评论 -
AsyncTask的使用
为什么要使用AsyncTask?这与android的UI操作不是线程安全的有关。1、android的主程序中不能进行耗时操作2、android又不允许我们在子线程中操作主线程中的UI控件3、UI操作只能在UI线程中执行4、耗时操作要在子线程中执行,执行完成后将结果返回给主线程去刷新UIAsyncTask的使用好处?1、我们不需要自己创建子线程,AsyncTask内部已经封装好了线程池去执行原创 2016-07-27 15:38:49 · 404 阅读 · 0 评论 -
Android/Intent的使用
Intent的7大属性1、componentName 组件:指定需要启动的名称2、Action 活动:了解系统的action3、category 分类:字符串类型,对Activity进行分类4、Data 数据:一般与action结合使用,表示action动作执行的数据5、type 类型:表示data类型6、Extra原创 2016-07-27 14:31:49 · 287 阅读 · 0 评论 -
Gradle打包
普通打包1、Build->Generate Singed APK 想打哪一个包名就打哪一个。2、next下一步,然后会出现下图的文本框 key store path:试将其位置放在哪里,就临时放到桌面上,file名称随便取一个llllkkkk,点击OK。 password: 自己记住一个密码,在后面的confirm:重复输入就原创 2016-07-27 09:57:49 · 412 阅读 · 0 评论 -
MVC设计模式
概述MVC是中异常件的软件架构之一,业界有着广泛的使用M:ModelV:ViewC:Controller解析Model 将新的数据发送给View,用户得到反馈View 传送指令到ControllerController 完成业务逻辑,要去Model改变状态简单代码演示1、在layout_mvc中加一段简单的代码 2、一般情况下我们在java代码中直接写代码,如下:原创 2016-07-27 09:18:39 · 799 阅读 · 0 评论 -
MVP设计模式
MVP设计模式M model是数据访问层:往往是数据接口或者服务器的API。V ViewUI显示层:主要是用于展示数据并对用户做出反馈,在android平台上,它可以对应为Activity、Fragment、View 或者对话框。P Presenter逻辑处理层:可以向View层提供数据,除此之外,它还会提交一些事务。我们为什么要用MVP的架构?现在开发安卓人员都会遇到这种问题,那就原创 2016-07-26 09:08:57 · 690 阅读 · 0 评论 -
android的四种启动模式详解
launchMode说起这个就想起来当初面试的时候,面试官问我安卓的四种启动模式,然后我就大概讲了讲,其实都是背诵的,也没有真正的理解这些启动模式在android中的实际意义,用处在那些地方今天我就或多或少的讲一下自己的理解1、standard 模式我们正常没有设置启动模式的时候,android的启动模式默认为standard这样的启动模式就是正常启动,启动的所有的activity都在一个task原创 2016-09-12 17:26:39 · 685 阅读 · 0 评论 -
win 10 无法打开studio ADB以及ADB无法正常运行的解决办法
这几天买了台电脑是个win10的, 1、每次让虚拟机运行,就是提示这个错误: enable Vt_x in your bois security setting(refer to documention for your computer) 一开始在电脑进入BOIS 的模式下的seurity目录下找什么问题,最后还是在 config里面将 intel Virtual原创 2016-09-13 17:50:50 · 8999 阅读 · 0 评论 -
Volley框架的使用
Volley的介绍a burst or emission of many things or a large amount at oncevolley的发布能够使网络通信更快,更简单,更强壮。它是一个网络请求的库。Volley用来做什么?1、Volley适合小数据的传输,简化了网络通信的一些开发,特别针对json数据加载、网络图片。2、Volley对大文件的下载效果不好,如电影视频的下载等3、原创 2016-08-11 21:56:14 · 255 阅读 · 0 评论 -
<Android>--6.0版本获取运行时的权限方法
介绍在6.0版本中,安卓让获取敏感权限的方法,不单单在manifest中添加权限那么简单了需要在自己的代码中添加一些权限才行,就拿sdCard来举例方法1.判断时候有要用的权限 public boolean hasPermission(String... permissions){ for (String permission:permissions){原创 2016-10-27 18:56:18 · 1154 阅读 · 0 评论 -
android的button点击变换颜色的方法
点击换背景在drawable中写两个shape的xml1、btn_press_shape.xml这<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="5dp"/> <soli原创 2016-09-30 18:50:36 · 1810 阅读 · 0 评论 -
<android>之Design包下的CoordinatorLayout
安卓design包下的不同的控件可以实现更多功能CoordinatorLayout的使用核心就是Behavior,Behavior就是行为的意思理解这个需要理解Child和Dependency,Child是子View,也就是CoordinatorLayout的子View,而Dependecy是子view所依赖的view。原创 2016-11-05 16:08:50 · 452 阅读 · 0 评论