- 博客(69)
- 资源 (14)
- 收藏
- 关注
原创 Android build.gradle读取String中文件及gradle.properties数据
在网上找了好久没有一个完整的学习文档,自己总结下,方便后面使用,话不多说直接上代码。读取gradle.properties。
2023-10-25 15:43:09
1047
原创 Mac系统配置java、Android_sdk、gradle、maven、ndk、flutter、tomcat环境变量
打开终端(相当于Windows系统的命令提示符),运行 open .zshrc ,它会自动打开编辑文件,加上source生效命令,然后保存。建议设置好一个环境就打x关闭一次终端窗口,右键退出终端,再打开一次,再运行命令,保证每个环境的完整生效。然后保存,再开终端运行一次source ~/.bash_profile,就生效了。然后保存,再开终端运行一次source ~/.bash_profile,就生效了。然后保存,再开终端运行一次source ~/.bash_profile,就生效了。
2023-03-09 16:16:50
2343
1
原创 AndroidStudio 代码报错(引入红色),但可正常运行解决方法(4种方式)
一、自带清除缓存点击AndroidStudio菜单File -> Invalidate Caches/Restar… ,在弹出的对话框中点击Invalidate and Restar。等待AS清理并自动重启。
前言提升开发效率,降低维护成本一直是开发团队永恒不变的宗旨。近一年来国内的技术圈子中越来越多的开始提及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
167
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
541
原创 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
833
原创 反编译
反编译我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译,一个是对资源的反编译,我们马上来逐个学习一下。在开始学习之前,首先我们需要准备一个APK文件,为了尊重所有开发者,我就不拿任何一个市面上的软件来演示了,而是自己写一个Demo用来测试。这里我希望代码越简单越好,因此我们建立一个新项目,在Activity里加入一个按钮,当
2020-12-16 17:03:57
5846
1
原创 【adb】adb shell 查看 APK 信息(权限等)
adb shell dumpsys package apk包名 eg:adbshelldumpsyspackagecom.android_sync.service
2019-12-10 17:39:25
2328
原创 git更新远程分支列表
有时会遇到git branch -a时总是不出现新的分支或者远程已经没有的分支在本地还有,这时就需要更新下本地的git分支保持和远程分支一致,使用下面命令即可:git remote update origin --prune...
2019-12-10 10:28:28
241
原创 android studio3.0 生成apk安装到手机上失败(-15)
啥不说 上图双击installDebug,出现下图时,就说明打包成功!记录下 方便以后使用
2018-11-08 17:47:15
1770
1
原创 excel添加文件和文件批量修改名称
1.添加文件名称到excel中将文件放到一起,打开命令窗体执行 dir 文件名路劲:文件夹名称/b>生成Excel路劲名称 例如:dir D:\123/b>D:\1234.xls 回车即可2.将Excel中的名称替换修改的文件名称 将原来的文件名称和修改后的文件名称放到不同的两列 在第三列中执行 ="ren "&原来应用的一行&" "&修改后名称的一行 ...
2018-04-26 14:14:20
735
原创 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
原创 EditText和ScrollView冲突的解决
EditText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //这句话说的意思告诉父View我自己的事件我自己处理
2017-10-26 16:02:17
457
原创 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
原创 android 抽屉菜单
总结下抽屉的使用,记录使用方法,方便以后查看 使用SlidingMenu SlidingMenu是一个开源的侧滑菜单(https://github.com/jfeinstein10/SlidingMenu)。 为大家的安卓程序提供侧滑菜单,这个功能也非常有用。 下载项目到本地放到项目中,然后添加到项目中进行依赖 SlidingMenu样式的抽屉,主要使用了MainActivity(1,2,3)
2017-10-18 15:49:09
1437
原创 Android Tab导航
demo中实现tab有2中方式:TabPageIndicator和TabLayoutTabPageIndicator实现需要导入com.inkapplications.viewpageindicatorTabLayout实现需要导入com.android.support:designTabPageIndicator和TabLayout的介绍(自我总结)TabPageIndicator和TabLayo
2017-10-18 15:24:30
1035
转载 Github上的README.md文件
来自:http://blog.youkuaiyun.com/zhaokaiqiang1992/article/details/413498191.来龙去脉和语法特点**Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
2017-10-18 15:12:45
524
转载 Android框架的收藏
缓存DiskLruCache Java实现基于LRU的磁盘缓存2.图片加载Android Universal Image Loader 一个强大的加载,缓存,展示图片的库Picasso 一个强大的图片下载与缓存的库Fresco 一个用于管理图像和他们使用的内存的库Glide 一个图片加载和缓存的库3.图片处理Picasso-transformations 一个为Picas
2017-09-14 16:37:19
228
原创 MyBites的使用,连接xml
MyBites 主要是对数据的操作,操作数据库首先的写接口对其进行操作,首先新建一个Servlet,复写doGet,doPost方法,在doPost中添加数据,首先创建实体(这个就不写了),给实体添加数据MyBitesStudio.javaString name=request.getParameter("users");//获得用户输入的数据 List<UserBean> lis
2017-08-31 16:01:48
463
原创 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
原创 在App中打开淘宝
什么都不说了直接上代码/** * 检测该包名所对应的应用是否存在 * @param packageName * @return */ public boolean checkPackage(String packageName) { if (packageName == null || "".equals(packageName))
2017-05-27 11:58:14
15476
原创 分分钟带你搞定Android开发圆形头像
转载:http://blog.youkuaiyun.com/kjunchen/article/details/50573326目前在应用开发中,矩形的头像基本没有了,大多是圆形或圆角矩形,本文简简单单轻轻松松帮你搞定圆形或圆角矩形的头像。可以自定义控件实现,而本文使用的是第三方开源控件RoundedImageView,改控件支持圆形、椭圆、圆角矩形等,使用非常方便。添加RoundedImageView依赖使用
2017-04-13 18:00:36
567
原创 Bugly的使用
Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力。Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并应用补丁的功能,我们也提供了热更新管理后台让开发者对每个版本补丁进行管理。第一步:添加插件依赖 工程根目录下“build.gradle”文件中添加:buildscript { repos
2017-04-13 15:32:12
31944
3
原创 Android Studio运行缓慢的解决办法
使用Android Studio以来发现内容越多,编译越慢,随着项目内容的添加编译运行一次要5分钟,这样的效率怎么能工作,今天有空解决了下这个问题,在gradle.properties中添加配置即可,现在只要5秒就可安装运行,效率非常快,如果这样还是不行,那说明该换电脑,加内存了org.gradle.daemon=trueorg.gradle.jvmargs=-Xmx2048m -XX:MaxPe
2017-03-13 18:05:36
2563
原创 ViewPager设置广告位,无限滚动
import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;impor
2016-12-05 16:21:29
236
原创 ScrollView自动滑动
MainActivity .classimport android.annotation.SuppressLint;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.os.Handler;import android.util.Log;impo
2016-10-13 15:27:42
1875
原创 Android 中Webview 自适应屏幕
webview中右下角的缩放按钮能不能去掉settings.setDisplayZoomControls(false); //隐藏webview缩放按钮让Webview加载的页面居中显示有我知道的几种方法 第一种方法:WebSettings settings = webView.getSettings(); settings.setLayoutAlgorithm(LayoutAlgorithm
2016-09-02 13:15:35
233
原创 Android 6.0授权悬浮框
Android6.0 的更新对于权限做了调整,一些权限需要用户自己去授权,下面是我遇到的做下记录,方便以后使用if (Build.VERSION.SDK_INT >= 23) { if (Settings.canDrawOverlays(context)) { //不需要授权 } else {
2016-08-30 17:08:28
1167
原创 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
373
原创 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
2100
原创 PopupWindow自定义类
public class PopupWindow extends PopupWindow{ private View conentView; private ListView popLv; private Window window; private WindowManager.LayoutParams layoutParams; private Activit
2016-08-12 16:11:50
424
原创 Android Sqlite学习
MainActivity.classpackage com.example.db2;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget
2016-08-12 13:37:47
280
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人