- 博客(66)
- 收藏
- 关注
原创 Android 中 app module和lib module同时多productFlavors的配置和使用
本文环境基于:studio版本:3.2.1和gradle-4.10.2-all截止目前,网上的方法都是基于旧版本的studio,在这里记录一下最新环境的配置。查阅了很多网站和资料,都是旧的方法,一直没搞好,前前后后耗时将近了两个星期。主要还是太low,一开始没太看懂官方的文档:添加编译依赖项|Android Developers。github还有个很新的demo:multi-fl...
2019-03-04 19:00:03
8354
2
原创 Android Textview的setText()导致的native内存一直增长
在自己的一个应用程序中,因为程序需要长期运行,发现运行几天或半个月后,发现内存涨得很高。因为程序使用的东西太多,相机,很多用c、c++写的底层算法库等等。排除了很久,初步认定是TextView的setText()导致的。 为了验证这个问题,然后新建了一个干净的工程,测试代码如下(布局就一个Textview控件):public class Main2Activity extends...
2018-12-13 18:23:46
3174
5
原创 Android 图片质量压缩,真正的按体积大小进行压缩
百度到的方法,经过测试,我只想说,写法简直是屎!!!!!!!!!!正确方法:/** * 压缩图片 * * @param image * @return */ public static byte[] compressImage(int maxSize, Bitmap image) { ByteArrayOutputStrea...
2018-07-01 16:04:51
1424
原创 Android 中 kotlin 高阶函数的使用
2018.6.251.异步执行任务,主线程返回/** * 使用RxJava异步执行任务,并返回相应的值 * * @param block 要执行的任务 * @param rtn 任务中的返回值 * @return */fun <T, R> T.exec(block: T.() -> R, rtn: (R) -> Unit): T { Obse...
2018-06-25 18:18:10
1573
原创 Android studio 下对module打jar包
1.在build.gradle中添加配置task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") { // 未混淆的jar路径 injars 'build/intermediates/bundles/release/classes.jar' // 混淆后的jar输出路径 outjars ...
2018-04-24 15:57:00
545
原创 Android 数据库框架Room的简单使用
官方demo:链接依赖及配置:apply plugin: 'kotlin-kapt'implementation "android.arch.persistence.room:runtime:1.0.0"kapt "android.arch.persistence.room:compiler:1.0.0"1.定义一个实体类,如User.ktimport andro...
2018-02-27 18:00:34
2731
2
转载 Android颜色偏移计算“轮子”-ColorShades
作用:取两个颜色的[0,1]区间值。和系统提供的ArgbEvaluator类功能差不多import android.graphics.Color;/** * Source from : * https://gist.github.com/cooltechworks/4f37021b1216f773daf8 * Color shades will provide all the inter...
2018-02-24 15:48:44
671
原创 Android 自定义View之RadioGroup实现跨多行显示
此自定义View源于网络,具体出处不详。import android.content.Context;import android.content.res.TypedArray;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.v...
2018-02-09 11:11:48
320
原创 Android 日常封装之暴力CustomActionSheet自定义Fragment从底部弹出界面
import android.content.Context;import android.content.res.Configuration;import android.content.res.Resources;import android.graphics.Color;import android.os.Build;import android.os.Bundle;import...
2018-02-09 10:58:25
385
原创 Android 日常封装之暴力CustomViewDialog自定义对话框
import android.app.Dialog;import android.content.Context;import android.support.annotation.LayoutRes;import android.support.annotation.NonNull;import android.support.annotation.StyleRes;import an...
2018-02-09 10:53:31
483
原创 Android 日常封装之暴力ImageLoader图片加载
/** * @author Created by qlang on 2017/9/7. */public class ImageLoader { public interface BitmapListener { void onCall(Bitmap bitmap); } public static <T extends ImageView...
2018-02-09 10:48:23
322
原创 Android 在Service服务、BroadcastReceiver广播等无界面类中弹对话框
实际上此种方式只是提供一个activity的实例,然后就可以在里面弹对话框或者干别的了。代码:/** * 用于在服务、广播等无界面类中弹对话框 * * @author Created by qlang on 2017/1/6. */public class DialogActivity extends Activity { private static DialogContext...
2018-02-09 10:27:47
325
原创 Retrofit + okHttp 访问https的实现
本文使用方法源自于网络,具体获取位置不详,写此以记于使用。1.使用提前准备好的自定义证书形式。证书以.bks后缀,可以使用bcprov-jdk15on-xxx.jar进行转换,该文件下载后放于jdk的jdk1.8.0_131\jre\lib\ext目录下。转换方法:使用:public class SslContextFactory { private static final String...
2018-02-09 10:10:06
504
原创 Android Studio 下Cmake的CMakeLists.txt文件配置
1.生成多.so模式,如图目录结构,需要单独每个模块生成自己的.so外层CMakeLists.txtAndroid Studio中, 具体Module中的build.gradle中先指定这个文件的位置cmake_minimum_required(VERSION 3.4.1) #指定编译器版本add_subdirectory(lic)#指定子文件夹add_subdirec...
2018-01-25 17:24:58
6050
1
转载 Java实现的RGB转YUV420方法
原文链接:点击打开链接原文代码:/** RGB图片转YUV420数据 * 宽、高不能为奇数 * @param pixels 图片像素集合 * @param width 宽 * @param height 高 * @return */ public byte[] rgb2YCbCr420(int[] pixels, int
2017-12-14 10:49:47
4564
原创 Android 网络访问框架retrofit2,okhttp3之简单封装,kotlin源码
定义:1.基于retrofit2和okhttp3的网络访问简单封装。基本封装类RetrofitClient.ktimport android.content.Contextimport android.util.Logimport java.io.Fileimport okhttp3.Cacheimport com.jakewharton.retrofit2.adapt
2017-08-28 15:40:07
1601
转载 Android功能集锦(2017.8)
1.通过Uri获取文件完整路径/** * 获取Uri对应的文件的路径。 4.4之后需增加权限 */ public static String getPath(Context context, Uri uri) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Documen
2017-08-28 15:11:24
243
原创 Android下对接Java写的WebServer接口的实现
吗买比。。。。。。在这记录一个天大的坑。。。。。这个坑掉进去整整6天!!Android下对接WebServer,啥??WebServer?我的第一反应是这货用C#写的,因为我之前有写过。。所以开始在网上找方法,。。。中间搞了几天,发觉对方一直说收不到我传过去的值,简直是超(ri)感(le)动(gou)。也中间写了.net的接口访问,访问并没什么问题,中间找了很多种方法。在网上找到了
2017-08-07 18:13:01
1255
原创 Android 功能集锦(2017.7)
1.自动安装/卸载APK,静默安装/卸载APK。import android.content.Context;import android.content.Intent;import android.net.Uri;import android.util.Log;import java.io.File;import java.io.PrintWriter;/** * @aut
2017-07-06 16:28:04
267
原创 Android BaseActivity、BaseFragment等 常用方法封装
BaseActivity、BaseFragment等 常用方法封装 Log类的封装
2017-03-25 21:03:28
3757
2
原创 Android 功能集锦(2017.3)
Android 中用到的功能集锦,Android studio 2.2以上CMake 编写Jni,CMakeList.txt写法
2017-03-24 16:09:46
366
原创 Android Volley的请求封装,实现图片内存缓存(防止OOM),数据磁盘缓存,及清除磁盘缓存
平时经常用到Volley请求网络数据,因为它确实好用,简单方便,因为项目要求也不是很苛刻,所以。。。。呃。。。程序员总会去重构自己的代码,这不,我自己研究源码和网上的一些方法,重构了自己方便用的代码,在这顺便记录一下。关于缓存,百度了好多,网上都是些什么研究源码的。。。呃,我想说,你们就别复制粘贴了,够多了!却很少有说这么用的。不多废话,正题。。。一:第一部分,实现内存缓存
2016-04-02 01:40:43
2046
原创 Android实现文件上传(使用Android-ansync-http)
Android-ansync-http开源框架,详情见GitHub:https://github.com/loopj/android-async-http。Android端实现文件的上传,代码如有雷同纯属开源!服务端实现(使用Servlet):UpLoadServle.java(只贴关键代码,剩下的自动生成的就不了。。。),用到的jar包commons-fileupload-1.2.1.jar,co
2016-01-05 16:13:05
4913
原创 Android应用宣传页和自定义页卡指示器
实现功能很简单,都是用图片代替完成。如要实现简单的指示器,这是最笨的方法。1.xml布局 由于是自定义,所以有多少个页面就添多少个指示器图片。 跟布局使用FrameLayout布局,里面加一个ViewPager,剩下的是指示器ImageView了。如下: <android.support.v4.view.ViewPager android:id="@+id/whatsnew_v
2015-10-26 23:50:35
454
原创 Android第三方图片加载库Universal Image Loader
主页: https://github.com/nostra13/Android-Universal-Image-Loader多线程图片加载(同步/异步)可自由定制图片加载方式(thread executors, downloader, decoder, memory and disk cache, display image options, etc.)ImageLoader
2015-10-25 17:02:24
1576
原创 Android代码混淆
代码混淆的作用1.防止反编译2.精简编译后的APK文件的大小代码混淆的代码语句写于proguard-rules.pro文件中: 混淆参数详解-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合
2015-10-25 16:33:05
517
原创 Android版本控制软件之SVN
什么是版本控制版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。Visualsvn官网: https://www.visualsvn.com/server/Tortoisesvn官网 http://tortoisesvn.net/
2015-10-25 15:22:58
3253
原创 Android第三方注解框架Annotations和butterknife
使用注解,可以帮我们去实现一些简单而重复的工作,使得开发效率得到有效提升,免去不必要的时间花费。像findViewById,既可以省时间,也省去了代码量。AndroidAnnotations,butterknife
2015-10-25 12:18:32
3337
原创 Android第三方网络资源加载框架Volley
Volley的简介和特点Volley 是2013年发布的Android平台网络通信库: 使用场景 并发,效率 性能 地址 :https://android.googlesource.com/platform/frameworks/volley/ Github地址:https://github.com/mcxiaoke/android-volley优点 1.通信更快,更简单 2.网络请求的排序
2015-10-24 21:47:41
588
原创 Android support.v7库中的几种控件,布局控件
android.support.v7,Toolbar,CardView,recyclerview。design库,TextInputLayout,FloatingActionButton,Snackbar,TabLayout,NavigationView,CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,
2015-10-24 15:50:03
20941
转载 Android功能之第三方AndroidResideMenu侧滑菜单
仿 Dribbble 的边栏菜单 项目地址:https://github.com/SpecialCyCi/AndroidResideMenu库工程、Demo地址:http://pan.baidu.com/s/1ntBz04xDEMO本代码即是DEMO,您可以下载后选择您喜欢的IDE运行。SDK版本建议使用4.0以上Version Migration从 v1.0, v1.1, v1.2, v1.3
2015-10-19 21:21:13
768
转载 Android功能之第三方Pull-to-Refresh.Rentals-Android下拉刷新
提供一个简单可以自定义的下拉刷新实现,Yalantis 出品。 项目地址:https://github.com/Yalantis/Pull-to-Refresh.Rentals-Android库工程、Demo地址:http://pan.baidu.com/s/1fXJzS 效果图: Usage For a working implementation, Have a look at the
2015-10-19 20:55:09
917
转载 Android功能之第三方SwipeMenuListView,Item项的侧滑
针对 ListView item 的侧滑菜单,项目地址:https://github.com/baoyongzhang/SwipeMenuListView库工程、Demo地址:http://pan.baidu.com/s/1sjEFbjRUsage Add dependencydependencies { compile 'com.baoyz.swipemenulistview:libra
2015-10-19 20:35:17
2003
原创 Android按两次返回键退出程序
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { final long currentTime = System.currentTimeMillis(); final long
2015-10-18 18:04:10
369
原创 Android通知之自定义通知、响应通知上自定义按钮和更新通知的实现
自定义通知,显示自定义的通知,告别系统样式的限制,让你的通知更加漂亮。1.自定义按钮的响应需要api版本11(Android 3.0)以上的支持! 2.通知是远程视图,不跟发出通知的活动、服务等处在同一个运行空间! 3.通知上的对象只能在发出之前设置,不能再发出后获取===>要更新通知,只能是重新设置通知对象上的对象值,再重新发出通知。 网上方法说是使用setLatestEventInfo()
2015-10-18 16:03:37
3251
原创 Android通知之通知栏点击通知后返回正在运行的程序,而不是一个新Activity
一般的写法,点击通知栏进入的Activity是一个新创建的Activity,而不是原先正在运行的Activity,这和我的想法是背道而驰的。当你点击返回按键退出这个Activity之后,发现,原先正在运行的Activity终于出现了。明显这样是不符合条理的。 我们想要点击通知后返回的是正在运行的活动(如果活动正在运行)或者创建新的活动(活动已经停止),应该这样写:只有在设置PendingInten
2015-10-18 15:33:38
9612
2
原创 Android基础学习之Socket、Http、Json网络编程
Android基础学习之Socket、Http、Json网络编程android 网络编程api1.java.net包 2.org.apache.http包 3.android.net包 4.用框架 volley使用类型: 1.做基本socket通信 2.访问web资源主要类: java.net包 Socket/ServerSocket 通信 URL URLConnection
2015-10-17 23:50:11
1494
原创 JSON 数据格式解析
JSON 数据格式解析和XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。String,Number 和 Boolean 用 JSON 表示非常简单。例如,用 JSON
2015-10-17 22:26:05
640
原创 JAVA基础学习之Http(含JSON)网络编程
1.访问网络资源,下载网络资源 示例:import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURL
2015-10-17 19:25:47
2355
原创 Android基础学习之AppWidget(桌面小部件)
Android桌面小部件,桌面时钟,天气预报,快速启动等等。是一种常驻程序。分类:1.快捷方式:程序快速入口2.小部件(AppWidget):提醒,通知,控制后台服务,显示数据3.实时文件夹(已过时)4.壁纸桌面小部件特点:1.不同android设备操作不同 2.不同版本差异(版本分裂)核心类:AppWidgetProviderja
2015-10-16 17:09:32
4385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人