自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 一个项目如何编译多个不同签名、包名、资源等,的apk?

​简介如题所示!本篇文章就是为了解决这种问题。方便打包和运行的时候能做到无需手动替换配置,即可打包想要的apk。打包的时候,只需选一下想打哪种配置的apk就OK啦。 (o)/~先来看,有需求如下:同一个项目不同的apk图标不同的服务器域名不同的包名不同的名称不同的签名不同的第三方key不同的版本名版本号解决思路当然最直接的方式不过于每次打不同包的时候都去替换对应的配置,这种方式的麻烦之处不言而喻。将所有配置,资源等都配置入项目中,打包的时候,根据选择渠道打包不同

2021-06-09 11:28:16 1694

原创 多Module中aar的依赖问题

问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生错误,Module B找不到aar文件。(同时如果又有ModuleC 依赖了Module B,C也会出同样的问题)

2021-06-08 17:00:54 900 1

转载 kotlin类委托、属性委托

kotlin类委托、属性委托1.类委托(1) 概念本类需要实现的方法/属性,借用其他已实现该方法/属性的对象作为自己的实现;​ 一旦使用了某类作为委托类,该类就能借用该委托类实现的方法/属性。(2)定义/** * 定义一个生物接口,有一个run抽象方法和一个抽象属性 */interface Creature { fun run() val type: String}/** * 定义一个委托类,实现了Creature接口 */class Delega

2021-01-27 15:46:54 361

原创 AndroidStudio 常用的gradle配置

1.配置apk输出名在app的build.gradle的android{}添加如下代码://apk name android.applicationVariants.all { variant -> variant.outputs.all { output -> def outputFile = output.outputFi...

2019-08-21 17:40:52 355

原创 java如何实现子线程执行完毕后再执行主线程

子线程常用来执行耗时任务,有时主线程需要子线程执行完毕后的结果再执行,现在来探讨实现该场景的几种实现方式一、join()说明:Thread中的join()方法就是同步,它使得线程之间由并行执行变为串行执行。测试代码如下:object ThreadTest { @JvmStatic fun main(args: Array<String>) { ...

2019-08-07 11:40:57 4673 1

原创 Toolbar滑动变色

现在很多app都有toolbar随着界面的滑动而进行变色的效果,无论是交互还是效果感觉都比较不错,现进行下尝试效果图:toolbar变色一般界面都是采用沉浸式,即透明状态栏,这里说两种实现方式:1.toolbar随scrollview、RecyclerView滑动进行变色这种布局相对不受限制,自由度更高一些2.采用coordinatelayout+appbarlay...

2019-06-06 14:44:10 1411

原创 安卓中如何获取view的高度

我们知道在oncreate中View.getWidth和View.getHeight无法获得一个view的高度和宽度,这是因为View组件布局要在onResume回调后完成。getMeasuredHeight()与getHeight的区别实际上在当屏幕可以包裹内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大...

2019-06-06 13:43:32 1589

原创 Android Studio快捷键备记

1.文档注释快捷键/** +enter2.单行注释ctr+/3.多行注释ctr+shift+/4.格式化代码ctr+alt+L5.自动补全末尾的符号ctr+shift+enter10.查看一个类的方法ctr+O11.查看一个类的继承关系ctr+H12.在项目内查找类,文件......shift+shift13.查找该类的实现类...

2019-05-23 16:48:20 237

原创 仿支付宝更多功能的实现

类似于功能中心这样的设计经常看到,公司这块的项目刚好有需求,自己仿着支付宝做了一下,实现的思路比较多,这里说下我的思路先看下效果:主要实现功能如下:1. tab与recyclerview支持滑动联动2. 我的应用支持拖拽排序3. 支持动态添加删除总体上与支付宝是差不多的思路如下:布局分析:布局层级如上图:xml如下:<?xml ...

2019-05-22 14:54:51 1734 2

原创 AndroidStudio版本控制工具的使用

项目中常用的版本控制工具主要有svn和git,主要说svn和git在AndroidStudio中的使用SVN:svn的下载和使用:参见android studio中使用svn详解Git:git结合gitlab的使用:参见详细讲解Android Studio中使用Git——结合GitLabGit使用常见问题:git如何删除已经提交的文件夹解决git-忽略文件,添加gi...

2019-04-16 10:35:53 865

原创 安卓support包冲突处理

support包一般有v4/v7/v13,主要是兼容低版本,v4兼容到api level 4(android 1.6及以上),v7(android 2.1及以上),v13(android 3.2及以上,一般用于平板),需要注意的是v7包默认包含了v4.解决方法:1. 在app/gradle文件中添加如下代码,让所有的第三方包强制使用指定版本的support包:configuratio...

2019-04-16 08:30:23 510

原创 Flutter之应用打包

使用Android Studio对Flutter应用打包生成签名文件如果您有现有keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key或者keytool -genkey -dn...

2019-03-05 11:47:21 822

原创 安卓屏幕适配及概念相关

做安卓已经几年了,其中涉及到的各种单位依旧容易混淆,网络上有许多相关的文章,甚至不同的文章相关的概念解释也略有出入,现对一些概念及屏幕适配相关的信息提出我个人的一些理解相关尺寸的概念  名词 解释 Px (Pixel像素) 不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100p...

2019-01-21 16:46:02 284

原创 android:fitsSystemWindows属性

fitsSystemWindows用于设置view在当前窗口的表现。一个app页面,包含:状态栏、标题栏、内容区、底部导航栏(比如有些手机的虚拟导航按键),如图:整个界面可以看做是一个window,fitsSystemWindows 生效的前提是状态栏(StatusBar)或导航栏(NavigationBar)透明并且不能有标题栏,默认fitsSystemWindows = true,...

2019-01-17 14:32:38 17418 1

原创 使用Rxjava2导致的内存泄露问题

Rxjava是个异步库,其链式的api调用使用起来非常简洁,优雅,但是不做处理的话很容易出现内存泄露内存泄露例子:有个MainActivity,代码如下:class MainActivity : AppCompatActivity(), View.OnClickListener { override fun onCreate(savedInstanceState: Bu...

2019-01-16 15:59:29 4875

原创 Kotlin容易遗忘的关键字备记

1."::"表示类的引用,eg:startActivity(Intent(this, MyFragmentActivity::class.java))2.var、val、constvar:定义变量val:定义常量(final修饰)const:用于修饰val,const val与val不同的是,const val 修饰的变量相当于java中public static fin...

2018-12-28 17:58:27 225

原创 安卓UI效果ripple使用

安卓Ripple(水波纹)效果是安卓5.0以上出来的,主要是为了提高用户体验,UI效果看起来更炫酷 先看下效果接下来一步步做说明:1.如何使用水波纹?设置控件的background属性:2.水波纹的分类默认分为两种:带边界的ripple和不带边界的ripple比如系统默认的水波纹效果:带有边界的:android:background="?android...

2018-12-25 13:10:33 2133

原创 onTouchListener、onTouchEvent、onClick区别

这里主要探讨Activity的onTouchEvent()、View的onTouch()、onTouchEvent()、onClick()之间的区别测试代码如下: @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstan...

2018-10-31 17:32:30 1053

原创 安卓selector使用及注意事项

如题,主要是安卓selector的使用及注意事项一、selector的创建我是使用安卓studio 版本:3.1.4,项目树切换到Android视图,在目录App-&gt;new-&gt; Android Resource File方式2: res-&gt;new-&gt; Android Resource File方式3:drawable-&gt;new-&gt; D...

2018-10-31 10:24:57 786

原创 Android中view的Left、Top、Right、Bottom

 View:getLeft()、getTop()、getRight()、getBottom() 这几个方法表示的具体坐标值容易混淆,故现在记下来看下图布局,相对布局中含有ImageView,ImageView的getLeft()、getTop()、getRight()、getBottom()值见下图标注,红色箭头表示的距离即为值的大小,以父布局左上角发散方向为正方向坐标系。通过以上...

2018-10-11 15:46:38 4787

原创 handler导致内存泄露的真正原因

handler是我们在更新UI时经常使用到的类,但是不注意的话,很容易就导致内存泄露,最后导致OOM,故现在探究下handler导致内存泄露的原因及有哪些常用的解决办法。先看下面一段代码: 可以看到这段代码编辑器为我们标出了黄色,并且提示如下:This Handler class should be static or leaks might occur (anonymous ...

2018-09-17 18:23:09 15231

原创 关于AlertDialog的一些

 setView与setContentView的区别看下面一段代码: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(R.layout.layout_updatedialog) .setTitle("更新") ...

2018-09-14 15:53:55 508

原创 安卓studio开发常见问题汇总

前言:主要是分类整理一些奇怪的异常,免的以后遇到了再次百度,后续会不断增加。。。应用安装时出现的问题1. 在覆盖安装应用时出现解析错误检查在安装应用时,是否有sdcard读写权限!2. 应用下载更新时,下载完毕后未自动安装检查应用是否做了安卓8.0适配,在安装的时候需要开启未知来源安装权限3. 应用在覆盖安装时出现应用未安装(多出现在通过内部存储进行安装)可能出现问题的...

2018-09-10 17:12:28 578

原创 二维码扫描之zxing与zbar

二维码扫描在日常的使用中非常广泛,特总结一波,并比较zxing与zbar的优劣之处zxing与zbar对比:1.zxing是谷歌开源,项目地址为:https://github.com/zxing/zxing,仍在维护,采用C++编写。zbar则是主要用C来写的,速度极快,推出了iPhone的SDK和Android的相关调用方法(JNI),但这个项目已经有几年不维护了,项目地址: htt...

2018-09-07 18:05:23 6322

原创 安卓常见文件路径

安卓文件路径非常容易记混,现记录如下,方便以后查看1.外部存储和内部存储的区别Internal storage:总是可用的这里的文件默认只能被我们的app所访问。当用户卸载app的时候,系统会把internal内该app相关的文件都清除干净。Internal是我们在想确保不被用户与其他app所访问的最佳存储区域External storage:并不总是可用的,因...

2018-09-03 11:27:02 4124

原创 安卓8.0下的应用安装

目录那么如何处理这个权限呢?1.应用的安装流程2.首先申请权限3.点击按钮进行应用安装4.检查是否有未知应用来源的权限5.执行安装流程到这里就基本就完了,但有几个注意点:前言:安卓系统升级到8.0之后,Google将未知应用安装权限的开关除掉了(原先打开这个开关所有的应用都会授予此权限),取而代之的是未知来源应用的管理列表,需要在里面打开每个应用的未知来源的安装权限...

2018-08-29 17:32:37 1376

原创 安卓应用签名那些事

安卓应用签名平常不怎么使用,容易遗忘,特记录下来。有些文章讲的很多,但觉的不够清晰,没能指出几种方式的异同,何时使用何种方式,下面说说我自己的理解。为什么应用需要签名?Android应用以它的包名作为唯一标识。如果在同一部手机上安装两个包名相同的应用,后面安装的应用就会覆盖前面安装的应用。为了避免这种情况的发生,Android要求对作为产品发布的应用进行签名。比如此时有两个包名一样的应用,...

2018-08-29 10:04:09 1477

原创 安卓手机拍照、裁剪、及图库选择图片裁剪(适配7.0)

网上介绍安卓7.0调用系统拍照的博客有很多,但感觉都不是很清晰,遂决定自己来写。Demo要实现的功能:1.支持拍照并且可以对图片进行裁剪2.支持从图库中选择图片并进行裁剪3.无论是拍照的照片还是从图库中选择的照片(都是裁剪后的)统一存储在同一个目录下问题点:1.安卓7.0及以后,获取图片的uri方式发生了变化,7.0及以后的uri需要通过contentProvider提供,...

2018-08-28 09:55:32 6984 16

原创 利用安卓studio制作gif动态图

为防止以后遗忘,于是写了这篇博客。。。步骤:1.打开安卓studio,我studio版本为3.1.3,不同版本录制按钮位置可能有所不同,操作见下图鼠标放在左下角的&gt;&gt;上点击开始录制按钮进行录制,最后保存的为MP4文件格式,需要MP4转gif工具。可选择的工具有gifCam,对播放的视频进行录制,最后输出为gif;或者使用格式工厂,视频&gt;&gt;...

2018-08-27 17:38:02 1498

空空如也

空空如也

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

TA关注的人

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