Android
文章平均质量分 60
青冘
希望和你一起进步
展开
-
ADB读取和备份安卓应用数据(无Root)
某一个特殊设备上的APP白屏无法打开,需要将数据库数据保留下来并导出,研究了几个方法最后得以获取数据。方案1:通过run-as读取进入shell,执行run-as + 包名,就可以直接以root权限进入该应用的沙盒中查看包括数据库、xml、各种信息文件。接下来可以通过pull或者copy命令将需要的数据转移至PC中adb shellrun-as package-name注:应用需为debug模式,即AndroidManifest.xml文件中,android:debugable需要为原创 2022-05-25 15:15:40 · 21516 阅读 · 1 评论 -
Java 发送和解析Soap Xml数据
Java 发送和解析Soap Xml数据原创 2021-12-21 14:34:11 · 5983 阅读 · 0 评论 -
Android开发不得不了解的Gson泛型封装
json格式1.后台给的数据格式有两种:// data 为 object 的情况{"code":"0","msg":"message","success":"true","data":{}}// data 为 array 的情况{"code":"0","msg":"message","success":"true","data":[]}2、假定第一种的对应的Java类型为BaseBean<XXX>,第二种为BaseBean<List<XXX>>...原创 2020-12-26 11:32:50 · 1517 阅读 · 0 评论 -
Android 崩溃可在手机端显示日志 SpiderMan
功能介绍:在Android手机上显示闪退崩溃信息 解决软件闪退崩溃,但是又不能场景重现的无奈 避免部分国产Rom禁止异常log输出 引入依赖从1.1.4版本开始全面迁移到androidx,如不想迁移到androidx请继续使用1.1.3版本。def spider_man = "1.1.5"def...原创 2020-04-27 16:20:07 · 1718 阅读 · 2 评论 -
Android 禁止屏幕旋转和重启Activity
禁止屏幕随手机旋转变化有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入属性android:screenOrientation="landscape"landscape = 横向portrait = 纵向避免在转屏时重启Activityandroid中每...原创 2020-04-08 18:23:35 · 4009 阅读 · 1 评论 -
Android RecyclerView 缓存和Item复用导致数据混乱
1.设置缓存数量 // RecyclerView可以设置自己所需要的ViewHolder数量 home_recyclerview.setItemViewCacheSize(20)2.禁止RecyclerView复用viewHolder.setIsRecyclable(false)...原创 2020-01-06 14:12:12 · 2894 阅读 · 0 评论 -
Android 点击父控件让子控件也可以响应点击事件
给子控件设置:android:duplicateParentState="true" //点击事件跟随父布局。原创 2019-12-27 18:33:43 · 2889 阅读 · 0 评论 -
BottomNavigationView 动态切换Icon且保留原图颜色
1.保留icon原图颜色bottomNavigation.setItemIconTintList(null);2.动态切换icon创建资源文件在drawable中<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/a...原创 2019-12-25 10:23:11 · 2733 阅读 · 2 评论 -
Android 调用系统蓝牙发送文件
调用原生系统的文件分享中的蓝牙分享功能 //调用android分享窗口 Intent intent2 = new Intent(Intent.ACTION_SEND); intent2.setType("*/*"); intent2.setPackage("com.android.bluetoo...原创 2019-12-03 14:29:53 · 1734 阅读 · 0 评论 -
Android POI对Excel进行数据读写
使用的是POI-3.8HSSFWorkbook ---- 对2003版本的Excel的支持 XSSFWorkbook ---- 对2007版本以及更高版本的支持 public void upWorkbook(String fin) throws IOException { FileInputStream excelFileInputStream ...原创 2019-11-26 14:52:18 · 1741 阅读 · 0 评论 -
Android BaseRecyclerViewAdapterHelper拖动和侧滑删除
1.适配器adapter继承BaseItemDraggableAdaptepublic class ItemDragAdapter extends BaseItemDraggableAdapter<BsInventoryBeanSub, BaseViewHolder> { //BsInventoryBeanSub是我的Bean类 public ItemDr...原创 2019-11-21 10:53:03 · 6477 阅读 · 3 评论 -
Android 10 新特性
Android 10 正式发布了,根据官网的介绍,聚焦于隐私可控、手机自定义与使用效率,此版本主要带来了十大新特性:创新与新体验可折叠基于强大的多窗口支持,Android 10扩展了跨应用程序窗口的多任务处理,并在设备折叠或展开时提供屏幕连续性来维护应用程序状态。5G 网络Android 10承诺提供持续更快的速度和更低的延迟,并增加了对5G的平台支持,并扩展了现有A...转载 2019-10-27 17:57:02 · 1377 阅读 · 0 评论 -
Android 控件获取焦点
如果想让页面上的某个控件获得焦点,比如Button(mBtn),则可以通过如下代码实现:mBtn.setFocusable(true);mBtn.setFocusableInTouchMode(true);mBtn.requestFocus();原创 2019-10-24 10:00:32 · 824 阅读 · 0 评论 -
Android SQLite简介及SQL语句记录
一.SQLite的介绍1.SQLite简介SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Ne...原创 2019-10-24 09:23:33 · 628 阅读 · 0 评论 -
Kotlin-使用BGABanner实现获取服务器数据的轮播图
这两天在学习BGABanner和Retrofit2,刚好想到有一个很实用的功能获取服务器数据的轮播图,于是便写了一个Demo效果图1.在gradle中引入//bga-banner implementation 'cn.bingoogolapple:bga-banner:2.2.5@aar' implementation 'com.android.suppo...原创 2019-01-08 17:28:22 · 2343 阅读 · 0 评论 -
Android图片加载框架Glide和Picasso分析比较
目录基本用法Glide的基本用法:Picasso的基本用法:库的大小和方法的数量使用方式缓存大小内存使用加载图片的时间其他功能的对比总结一下他们之间的区别:Glide 和 Picasso 是目前 Android 上最流行的图片加载库。大部分安卓应用开发人员都有使用过这两个库在他们的开发工作中。这两个库也都确实提供了大量图片加载的功能,而且也都经过了很多应...原创 2019-07-21 20:37:35 · 1698 阅读 · 0 评论 -
Android 给EditText添加下划线
在安卓高版本中,默认是有下划线的,其下划线的颜色是由其主题颜色来控制的 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary"...原创 2019-08-20 10:57:01 · 4944 阅读 · 0 评论 -
Android 生成文件,电脑连接数据线无法查看的解决方法 ——MediaScannerConnection 刷新媒体库
MediaScannerConnectionMediaScannerConnection 作用是为应用提供一个媒体扫描服务,当有新创建或者下载的文件时,会从该文件读取元数据并将该文件添加到媒体中去。当我们添加一个文件的时候,我们需要刷新媒体库才能立即找得到添加文件,MediaScannerConnection可以为我们解决这一问题。ACTION_MEDIA_MOUNTED 不能使...原创 2019-08-27 15:44:27 · 2858 阅读 · 0 评论 -
Android UI控件添加圆角边框
1.在res目录下新建一个xml文件,类型选择drawable<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <!--背景颜色--> <solid android:colo...原创 2019-09-03 19:10:51 · 1068 阅读 · 0 评论 -
每天进步一点点之Android基础(1)——Android Service、IntentService,Service和组件间通信
ServiceService 和Activity 一样同为Android 的四大组件之一,并且他们都有各自的生命周期,要想掌握Service 的用法,那就要了解Service 的生命周期有哪些方法,并且生命周期中各个方法回调的时机和作用。有一点比较重要,Service 有两种启动方式,并且它的两种启动方式的生命周期是不一样的。接下来来分别看一下两种启动方式各自的生命周期方法。startSe...原创 2019-10-07 20:25:43 · 531 阅读 · 0 评论 -
Android RecyclerView 实现position列表倒序排列(汇总)
最近业务需求中要用到RecyclerView列表倒序排列,于是便研究了一下,并汇总第一种:在设置数据源的时候:// 设置倒序 Collections.reverse(bean); myViewHolder.tv.setText(bean.get(position));第二种:CollectionsCollections.sort(list)...原创 2019-10-08 22:23:53 · 1882 阅读 · 0 评论 -
RecyclerView Item置顶方法(点击置顶、刷新置顶等)
RecyclerView本身两个常用的滑动方法:smoothScrollToPosition( int position )方法smoothScrollBy( int dx, int dy )方法smoothScrollToPosition( int position )方法可以滑动到指定位置的Item,直到该Item完全可见,也就是说如果该Item本身就在RecyclerView可见...原创 2019-10-08 22:27:50 · 2527 阅读 · 0 评论 -
Android EditText 禁用软键盘,但是需要显示光标
3.0以下版本可以用editText.setInputType(InputType.TYPE_NULL)来实现。或者设置editText.setKeyListener(null)来实现.3.0以上版本可以调用隐藏方法:setShowSoftInputOnFocus(false),由于是系统内部方法。无法直接调用,所以采用反射的方式来进行调用 public void closek...原创 2019-08-02 17:47:17 · 1813 阅读 · 0 评论 -
Android ViewPager使用方法介绍
android-support-v4.jar 是谷歌提供给我们的一个兼容低版本安卓设备的软件包,里面包囊了只有在 Android 3.0 以上可用的API。而 ViewPager 就是其中之一。利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。1.ViewPager -- 基本用法ViewPager 的基本用法可以分为以下步骤:在 layout 文件中定义一个 Vi...原创 2019-07-29 23:27:37 · 1151 阅读 · 0 评论 -
Android Toast 吐司 自定义使用 实现动态打勾对号效果 Toast自定义教程(三)
这篇博客主要是写了功能的实现,在前面已经写了原理。Android 自定义View 通过Paint和Canvas实现动态打勾对号效果Android Toast 吐司 自定义使用 展示图片 Toast自定义教程(一)老规矩,先上效果图效果图其实就是复用了之前写的自定义view,然后再写一个自定义布局的Toast。动态打勾不再讲解,需要了解点击这里先说布局,很简单的一个布...原创 2019-02-26 16:57:04 · 1943 阅读 · 0 评论 -
Android 自定义View 通过Paint和Canvas实现动态打勾对号效果
效果图一开始是使用的最下面一种,发现canvas绘制线,一个点一个点绘制会非常的慢,于是改进成第一个,另外把对号单独提取出来了。设计稿分为一个圆和两条线,中间小的方框的边长就是代码中的hookSize,每次绘画的时候会先去找圆心,然后以圆心为中心去绘制正方形。首先绘制圆,绘制完成后再分别绘制两条线,先画短的,画完短的再开始画长的。 几个注意点1. 坐标系以左上角...原创 2019-02-26 15:55:07 · 3700 阅读 · 0 评论 -
Android Toast 吐司 常见使用封装 自定义使用 展示图片 Toast自定义教程(二)
由于吐司Toast在APP中用的非常多,所以有必要对他进行封装一下,下面是封装好的代码,可以直接拿去使用 效果图 源代码分析对Toast封装之前,先分析一下源代码Toast.makeText() public static Toast makeText(Context context, CharSequence text, @Duration int d...原创 2019-02-26 13:42:28 · 1628 阅读 · 0 评论 -
Android Toast 吐司 自定义使用 展示图片 Toast自定义教程(一)
最近的项目中需要用到自定义Toast,于是便学习了一下。效果图 Toast用于向用户显示一些帮助或提示,上面展示了Toast的4种使用效果,有需求的话也可以完全自定义,是一项很实用也很强大的功能。 这是使用Toast需要注意的代码:LENGTH_LONG---长时间显示视图或文本提示LENGTH_SHORT---短时间显示视图或文本提示setGrav...原创 2019-02-25 17:05:53 · 2500 阅读 · 0 评论 -
Android从1.0到 6.0各版本的差别
Android 系统从2008年到现在(2016年4月),八年时间里版本从1.0一直升到6.0,由于Android系统更新速度快,导致市面上的Android设备运行的Android系统版本不一(专业术语叫碎片化严重)2016年的最新Android版本分布图(截止到2016年1月)从图中可以知道目前主流的系统是三款,但是还是有些版本的系统还在使用,作为Android程序开发者,必须尽量照顾到...转载 2019-01-21 13:08:45 · 2511 阅读 · 0 评论 -
安卓开发实战 大学班级APP开发 练手项目 (二) 课表查询
目录一、界面设计fragment_blank.xml:line_h.xml :line_top.xml:btn_bg_red.xml:二、数据库的创建Open_Sql.java:三、数据库的使用classcourse_json.java:User_Data.java:四、功能实现BlankFragment.java:DiaFragment.jav...原创 2018-10-30 21:53:51 · 3162 阅读 · 2 评论 -
安卓开发实战 大学班级APP开发 练手项目 (一)Android Studio 自带模板Bottom Navigation Activity 的使用
一、创建Bottom Navigation使用Android Studio创建工程,在选择activity的时候选择Bottom Navigation Activity之后 xml文件 代码修改如下<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout x...原创 2018-10-29 15:02:04 · 8065 阅读 · 0 评论 -
getActivity,Context为空解决办法
原文地址:https://blog.csdn.net/qq_26650589/article/details/72473274 做一个小项目的时候遇到了一个空指针问题, 项目的大概是这样FragmentA中是一些普通布局,FragmentB中是一个listview显示数据,当我从FragmentA中点击 到FragmentB的时,FragmentB中listview还没有把数据加载出来时再...转载 2018-09-16 12:53:38 · 2133 阅读 · 1 评论 -
Android中ListView使用总结
LisView介绍:(一)、ListView 概念: ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView。它以垂直列表的方式列出所需的列表项。java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.AdapterView ...转载 2018-04-29 11:11:40 · 2118 阅读 · 0 评论 -
Android 活动之间传递数据
在启动活动时传递数据的思路其实很简单,Intent中提供了一系列putExtra()方法的重载,我们把需要传递的数据暂存在Intent中,启动了另一个活动之后,只需要把这些数据提取出来就可以了。活动间传递数据分为两种情况,向下传递以及返回上一个活动传递1.向下一个活动传递数据在AActivity中有一个字符串,现在要把这个字符串传递到BActivity中: button.setO...原创 2019-04-07 17:43:49 · 3568 阅读 · 0 评论 -
Android Retrofit2 使用教程
什么是 Retrofit ?Retrofit是Square开发的一个Android和Java的REST客户端库。这个库非常简单并且具有很多特性,相比其他的网络库,更容易让初学者快速掌握。它可以处理GET、POST、PUT、DELETE…等请求,还可以使用picasso加载图片。常用注解Retrofit 2.0底层依赖OkHttp实现,也就是说Retrofit本质上就是对OkHttp的更...原创 2019-07-07 17:32:44 · 3642 阅读 · 0 评论 -
RxHttp 一条链发送请求,新一代Http请求神器
简介RxHttp是基于OkHttp的二次封装,并于RxJava做到无缝衔接,一条链就能发送一个完整的请求。主要功能如下:支持Get、Post、Put、Delete等任意请求方式,可自定义请求方式支持Json、DOM等任意数据解析方式,可自定义数据解析器支持文件下载/上传,及进度的监听,并且支持断点下载支持在Activity/Fragment的任意生命周期方法,自动关闭未完成的请求...转载 2019-07-07 14:21:35 · 1921 阅读 · 0 评论 -
Android 中 MVC 的简单理解
MVP架构介绍https://blog.csdn.net/qq_17798399/article/details/95934476Android 的当前开发MVP已成为开发主流模式,不过MVC的模式,当前项目中还在使用,MVC是从Java web中嫁接过来的。在Android中,Activity/Fragment既充当控制层又充当视图层,这就导致了V和C这两层耦合在一起,当业务比较复杂时,...原创 2019-07-14 22:24:02 · 2136 阅读 · 0 评论 -
Android Service 定时任务
Android 中的定时任务一般有两种实现方式(这里我们使用的是Android 的 Alarm 机制 )1.Java API提供的Timer类不太适用于那些需要长期在后台运行的定时任务。我们都知道,为 了能让电池更加耐用,每种手机都会有自己的休眠策略,Android 手机就会在长时间不操作 的情况下自动让 CPU 进入到睡眠状态,这就有可能导致 Timer 中的定时任务无法正常运行...原创 2019-06-30 19:39:41 · 5811 阅读 · 2 评论 -
Android MVP 架构介绍
Android 中 MVC 的简单理解https://blog.csdn.net/qq_17798399/article/details/95933628MVP模式相信大家对MVC都是比较熟悉了:M-Model-模型、V-View-视图、C-Controller-控制器,MVP作为MVC的演化版本,那么类似的MVP所对应的意义:M-Model-模型、V-View-视图、P-Presente...原创 2019-07-14 23:37:06 · 3394 阅读 · 2 评论 -
分享两个超实用的Android开源UI框架——QMUI和XUI
目录QMUI_Android功能特性全局 UI 配置丰富的 UI 控件高效的工具方法功能列表支持 Android 版本使用方法QMUI Demo APP 安装包下载XUI特征演示程序截图QMUI_Android是腾讯的一款开源UI库QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Andro...原创 2019-07-13 23:42:24 · 34718 阅读 · 0 评论