
知识点
文章平均质量分 60
豆Android
做自己喜欢的
展开
-
Android build.gradle读取String中文件及gradle.properties数据
在网上找了好久没有一个完整的学习文档,自己总结下,方便后面使用,话不多说直接上代码。读取gradle.properties。原创 2023-10-25 15:43:09 · 1053 阅读 · 0 评论 -
Retrofit2基本使用
概述Retrofit是当下最热门的Android网络请求库,准确的来说Retrofit是一个RESTful的HTTP网络请求框架的封装,因为它内部网络请求的工作,本质上是通过OkHttp完成,而Retrofit仅负责网络请求接口的封装。具体是客户端通过Retrofit请求网络,实际上是通过Retrofit的接口层封装了请求参数,header,url等信息,之后由OkHttp完成后续的请求工作。然后在服务端返回数据之后,OkHttp将原始的结果传递给Retrofit,Retrofit根据客户端的相关配置,原创 2021-02-18 19:01:00 · 3285 阅读 · 0 评论 -
Retrofit2深入浅出
Retrofit2简单的说就是一个网络请求的适配器,它将一个基本的Java接口通过动态代理的方式翻译成一个HTTP请求,并通过OkHttp去发送请求。此外它还具有强大的可扩展性,支持各种格式转换以及RxJava。本文基于Retrofit2解析。Retrofit2基本使用先定义一个PersonalProtocol的java接口public interface PersonalProtocol { /** * 用户信息 * @param page * @.原创 2021-02-18 16:16:47 · 143 阅读 · 0 评论 -
RxJava系列1(简介)
前言提升开发效率,降低维护成本一直是开发团队永恒不变的宗旨。近一年来国内的技术圈子中越来越多的开始提及Rx,经过一段时间的学习和探索之后我也深深的感受到了RxJava的魅力。它能帮助我们简化代码逻辑,提升代码可读性。这对于开发效率的提升、后期维护成本的降低帮助都是巨大的。由于我本人是个Android程序猿,因此这一系列文章中的场景都是基于Android平台的。如果你是个Java Web工程师或者是其它方向的那也没关系,我会尽量用通俗的语言将问题描述清楚。响应式编程在介绍RxJava前,我们先原创 2021-02-08 10:57:55 · 206 阅读 · 1 评论 -
android Mvp简单使用
什么是MVP,为什么要用MVP?网上介绍MVP的很多,百度一下你就知道,至于为什么要用MVP,当然是由于它的优势了:1.代码简洁此处的简洁是逻辑的简洁,而不是代码本身 举个栗子image.png比如购物车界面,有很多请求网络的地方:获取购物车商品列表、购物车商品的删除、购物车商品的购买等等, 这么多网络请求,如果都写在一个Activity,而且还有大量逻辑判断,那这个Activity的行数~ 看着就让人头痛, 即便写了注释,维护起来也是比较麻烦的2.降低耦合,方便维护MVP..原创 2021-02-04 18:37:44 · 565 阅读 · 1 评论 -
Android组件化开发
一.什么是组件化开发所谓组件化,就是将整个庞大的项目以业务逻辑进行拆分成多个模块,并且各个模块之间相互独立,相互解耦,每一个模块可以单独进行开发调试,各个模块调试完,以library的形式依赖在壳App中组合成一个完整的项目。二.为什么要采用组件化随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加,而且每个模块的代码也变的越来越多,这样发展下去单一工程下的APP架构势必会影响开发效率,增加项目的维护成本,每个工程师都要熟悉如此之多的代码,将原创 2021-02-04 15:16:27 · 3517 阅读 · 2 评论 -
textview折叠效果
ViewTreeObserver vto = tv1.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { int lineCount = tv.原创 2021-01-09 15:45:13 · 169 阅读 · 1 评论 -
文字添加模糊效果
SpannableString stringBuilder=new SpannableString(bean.getList().get(0).getReportContent()+""); stringBuilder.setSpan(new MaskFilterSpan(new BlurMaskFilter(10f,BlurMaskFilter.Blur.NORMAL)), 0,stringBuilder.length(), Spann.原创 2021-01-09 15:35:00 · 542 阅读 · 0 评论 -
TextView前添加图片
啥也不说上代码private TextView text; String text="这里是多行文字"; SpannableString newText = new SpannableString(text+ " "); int len = newText.length(); //加载本地资源图片 Drawable d = ContextCompat.getDrawable(mContext, (R.drawable.abc_pic)); //距离文字左原创 2021-01-09 15:33:53 · 835 阅读 · 0 评论 -
反编译
反编译我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译,一个是对资源的反编译,我们马上来逐个学习一下。在开始学习之前,首先我们需要准备一个APK文件,为了尊重所有开发者,我就不拿任何一个市面上的软件来演示了,而是自己写一个Demo用来测试。这里我希望代码越简单越好,因此我们建立一个新项目,在Activity里加入一个按钮,当原创 2020-12-16 17:03:57 · 5848 阅读 · 1 评论 -
Android studio build界面乱码问题
然后在打开的文件中添加一句-Dfile.encoding=UTF-8重启就行了原创 2020-08-26 11:13:27 · 373 阅读 · 0 评论 -
【adb】adb shell 查看 APK 信息(权限等)
adb shell dumpsys package apk包名 eg:adbshelldumpsyspackagecom.android_sync.service原创 2019-12-10 17:39:25 · 2331 阅读 · 0 评论 -
git更新远程分支列表
有时会遇到git branch -a时总是不出现新的分支或者远程已经没有的分支在本地还有,这时就需要更新下本地的git分支保持和远程分支一致,使用下面命令即可:git remote update origin --prune...原创 2019-12-10 10:28:28 · 241 阅读 · 0 评论 -
Android的生成日志文件
在调试的时候一般都是在logcat中看日志的信息,以便找出BUG和调试信息,但是如果在真机上的话不可能一直连接电脑查看日志,所以生成日志文件并保存,是一个比较普遍的需求,下面就是最近实现的一个例子。欢迎大家讨论并给出别的思路。import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import原创 2016-02-02 17:33:45 · 1235 阅读 · 0 评论 -
Github上的README.md文件
来自:http://blog.youkuaiyun.com/zhaokaiqiang1992/article/details/413498191.来龙去脉和语法特点**Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。转载 2017-10-18 15:12:45 · 524 阅读 · 0 评论 -
Android Tab导航
demo中实现tab有2中方式:TabPageIndicator和TabLayoutTabPageIndicator实现需要导入com.inkapplications.viewpageindicatorTabLayout实现需要导入com.android.support:designTabPageIndicator和TabLayout的介绍(自我总结)TabPageIndicator和TabLayo原创 2017-10-18 15:24:30 · 1035 阅读 · 0 评论 -
ButterKnife使用
1.使用ButterKnife优势 1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率 2.方便的处理Adapter里的ViewHolder绑定问题 3.运行时不会影响APP效率,使用配置方便 4.代码清晰,可读性强2.下面是配置1.)在Project的build.gradle中添加如下配置 buildscript {原创 2017-10-20 14:54:36 · 251 阅读 · 0 评论 -
EditText和ScrollView冲突的解决
EditText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //这句话说的意思告诉父View我自己的事件我自己处理原创 2017-10-26 16:02:17 · 457 阅读 · 0 评论 -
Rxjava操作符的基本使用
from将其他种类的对象和数据类型转换为ObservableInteger[] in={1,2,3,4,5,6,7,8,9,10,11,222};//将其他种类的对象和数据类型转换为Observable //map讲Integer转化成String Observable.from(in).map(new Func1<Integer, String>() {原创 2017-11-23 17:37:47 · 260 阅读 · 0 评论 -
excel添加文件和文件批量修改名称
1.添加文件名称到excel中将文件放到一起,打开命令窗体执行 dir 文件名路劲:文件夹名称/b>生成Excel路劲名称 例如:dir D:\123/b>D:\1234.xls 回车即可2.将Excel中的名称替换修改的文件名称 将原来的文件名称和修改后的文件名称放到不同的两列 在第三列中执行 ="ren "&原来应用的一行&" "&修改后名称的一行 ...原创 2018-04-26 14:14:20 · 735 阅读 · 0 评论 -
android studio3.0 生成apk安装到手机上失败(-15)
啥不说 上图双击installDebug,出现下图时,就说明打包成功!记录下 方便以后使用原创 2018-11-08 17:47:15 · 1773 阅读 · 2 评论 -
git无法查看远程分支方法
git fetch --allgit reset --hard origin/mastergit fetch原创 2019-08-15 18:51:16 · 2146 阅读 · 0 评论 -
android 流布局实例
特别好用的util,啥都不说了直接上代码import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;public class AutoUtil extends ViewGroup{ public AutoUtil原创 2017-08-18 16:41:04 · 348 阅读 · 0 评论 -
在App中打开淘宝
什么都不说了直接上代码/** * 检测该包名所对应的应用是否存在 * @param packageName * @return */ public boolean checkPackage(String packageName) { if (packageName == null || "".equals(packageName))原创 2017-05-27 11:58:14 · 15483 阅读 · 0 评论 -
ViewPager+Fragment实现无限加载
ViewPager+Fragment在开发中也是非常常见的,今天有空总结下,方便以后使用,下面是总结: MainActivity.classpackage com.example.viewpager_fragment_demo;import android.os.Bundle;import android.support.v4.app.Fragment;import android.sup原创 2016-08-16 14:16:30 · 2102 阅读 · 0 评论 -
Android Fragment 真正的完全解析(上)
这里写链接内容 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~哈哈,是不是有点过~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Fr转载 2015-12-21 11:40:44 · 276 阅读 · 0 评论 -
Android Fragment 真正的完全解析(下)
文章出处:http://blog.youkuaiyun.com/lmj623565791/article/details/37992017上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment转载 2015-12-21 12:01:28 · 371 阅读 · 0 评论 -
Android Fragment 你应该知道的一切
文章出处:http://blog.youkuaiyun.com/lmj623565791/article/details/42628537 ,本文出自:【张鸿洋的博客】很久以前写过两篇Fragment的介绍,主要就是介绍其功能:Android Fragment 真正的完全解析(上)和Android Fragment 真正的完全解析(下) 有兴趣的可以凑合看下。之前的博客属于怎么使用Fragment,本文目标教转载 2015-12-21 12:05:51 · 331 阅读 · 0 评论 -
声音提示
App设置自己的提示音乐 方法一:import android.app.Activity;import android.content.ContentValues;import android.content.Context;import android.content.SharedPreferences;import android.media.MediaPlayer;import a原创 2016-07-22 15:03:44 · 448 阅读 · 0 评论 -
manifest.xml 中元素含义
这些都是manifest.XML里的代码。每一段代码都有它的意思,这些资料主要就是让新手们知道每一段代码都是干什么的。什么地方出错了,先看看manifest.xml里有没有缺少权限。android:allowTaskReparenting这句话的意思就是(是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。)android:alwaysRetainTaskState是否保留状原创 2016-02-02 17:09:35 · 479 阅读 · 0 评论 -
Android 动态关闭Manifest中的Receiver的方法
为什么要关闭组件?在用到组件时,有时候我们可能暂时性的不使用组件,但又不想把组件kill 掉,比如创建了一个broadcastReceiver广播监听器,用来想监听第一次开机启动后获得系统的许多相关信息,并保存在文件中,这样以后每次开机启动就不需要再去启动该服务了,也就是说如果没有把receiver关闭掉,就算是不做数据处理,但程序却还一直在后台运行会消耗电量和内存,这时候就需要把这个receive原创 2016-02-02 16:47:56 · 1193 阅读 · 0 评论 -
Manifest权限大全
这些权限就可以放在 AndroidManifest.xml这个文件里声明,书写格式如下:<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>ACCESS_CHECKIN_PROPERTIES允许读写访问”properties”表在checkin数据库中,改值可以修改上传 Allows read/w原创 2016-02-02 16:46:19 · 1691 阅读 · 0 评论 -
Manifest权限大全
这些权限就可以放在 AndroidManifest.xml这个文件里声明,书写格式如下:<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>ACCESS_CHECKIN_PROPERTIES允许读写访问”properties”表在checkin数据库中,改值可以修改上传 Allows read/w原创 2016-02-02 15:06:40 · 1726 阅读 · 0 评论 -
assets文件夹资源的访问
assets文件夹资源的访问assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。先在Activity里面调用getAssets()来获取AssetManager引用。再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。然原创 2016-02-01 14:32:37 · 229 阅读 · 0 评论 -
ListView全选
Listview的全选反选非常常用,今天总结了下: activity_main<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren原创 2016-07-21 14:06:13 · 351 阅读 · 0 评论 -
Fragment案例
Fragment也是常用的在Android中,之前只是总结了下知识点,今天写了个例子,对只是巩固了下,下面是例子: MainActivity.classpackage com.example.fragmentdemo1;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android原创 2016-08-19 16:07:08 · 374 阅读 · 0 评论 -
Android 6.0授权悬浮框
Android6.0 的更新对于权限做了调整,一些权限需要用户自己去授权,下面是我遇到的做下记录,方便以后使用if (Build.VERSION.SDK_INT >= 23) { if (Settings.canDrawOverlays(context)) { //不需要授权 } else {原创 2016-08-30 17:08:28 · 1167 阅读 · 0 评论 -
Bugly的使用
Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力。Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并应用补丁的功能,我们也提供了热更新管理后台让开发者对每个版本补丁进行管理。第一步:添加插件依赖 工程根目录下“build.gradle”文件中添加:buildscript { repos原创 2017-04-13 15:32:12 · 31949 阅读 · 3 评论 -
分分钟带你搞定Android开发圆形头像
转载:http://blog.youkuaiyun.com/kjunchen/article/details/50573326目前在应用开发中,矩形的头像基本没有了,大多是圆形或圆角矩形,本文简简单单轻轻松松帮你搞定圆形或圆角矩形的头像。可以自定义控件实现,而本文使用的是第三方开源控件RoundedImageView,改控件支持圆形、椭圆、圆角矩形等,使用非常方便。添加RoundedImageView依赖使用原创 2017-04-13 18:00:36 · 567 阅读 · 0 评论 -
Android Studio运行缓慢的解决办法
使用Android Studio以来发现内容越多,编译越慢,随着项目内容的添加编译运行一次要5分钟,这样的效率怎么能工作,今天有空解决了下这个问题,在gradle.properties中添加配置即可,现在只要5秒就可安装运行,效率非常快,如果这样还是不行,那说明该换电脑,加内存了org.gradle.daemon=trueorg.gradle.jvmargs=-Xmx2048m -XX:MaxPe原创 2017-03-13 18:05:36 · 2564 阅读 · 0 评论