
Android开发
文章平均质量分 70
遇见昨天
这个作者很懒,什么都没留下…
展开
-
Android 单元测试 Mockito 官方代码 BasicSample 解析 从零开始
下载google的代码:https://github.com/android/testing-samples/tree/master/ui/espresso/BasicSample下载我的代码:https://github.com/zhoulingluo/AndroidTest.git题外话:看google是怎么获取和读取SharedPreferences/** * 保存一个对象 */public boolean savePersonalInfo(SharedPreferenceE...原创 2020-08-12 18:35:25 · 387 阅读 · 1 评论 -
数组之间相互转化
Integer[] aa=new Integer[]{2,4,5,8};Float[] bb=(Float[]) (Arrays.asList(aa)).toArray(new Float[0]);原创 2019-12-06 16:31:10 · 387 阅读 · 0 评论 -
Android 获取View的坐标位置
前言获取 View 坐标在 Android 开发中非常常见。今天carson将详细给大家讲解 获取 View 坐标常用6种方式:getLeft()、getTop()、getRight()、getBottom() getX()、getY()、getRawX()、getRawY() getLocationOnScreen() getLocationInWindow() getGloba...转载 2019-10-25 09:37:05 · 12501 阅读 · 0 评论 -
ArtiFactory配置自己的远程连接库
由于公司项目需要,现需要将一些公用的工具、组件、封装至Maven 仓库,以提供于其他项目的使用,避免复制粘贴的出现。众人拾柴火焰高。这样经过大家共同的努力,从而是该工具库变得更加的完善和健壮。为此使用ArtiFactory,当然也可以使用Bintray。亦是公司需要,使用ArtiFactory。现做出记录:因为该工具的使用,需要使用Java JDK 1.8 以上,所以,在使用之前我们先检...转载 2019-10-14 20:12:22 · 1067 阅读 · 0 评论 -
layout转化bitmap 显示不出来
1.View v = getLayoutInflater().inflate(R.layout.activity_report_print, null);int width = 3580;int height = 2408;Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);Canvas c原创 2018-01-02 18:04:16 · 1009 阅读 · 0 评论 -
android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor'
根据网络的解决方法是:一、把project目录下的build.gradle中的classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8'删除掉;二、把具体Module目录下的build.gradle中的apply plugin: ‘com.neenbedankt.android-apt’删除;三、同时把dep原创 2017-11-27 11:57:49 · 8318 阅读 · 2 评论 -
'com.android.application' not found
1.方法build.gradle(Project: )修改dependencies中classpath 'com.android.tools.build:gradle:2.2.0'你自己的gradle的版本号,查看自己的版本号是: Terminal(在工具下方LOGO旁边 旁边) —> gradle -v (前提是配置了环境变量) 可以参考http://blog.csdn.原创 2017-12-14 10:59:23 · 1322 阅读 · 0 评论 -
UnsatisfiedLinkError: dalvik.system.PathClassLoader
头疼主要的话是这是因为应用工程中lib文件夹下面有armeabi和armeabi-v7a等多个目录(分别对应不同的CPU平台),安装时,会根据不同CPU平台把对应的lib下的so文件拷贝到手机的指定分区中。 自己的lib里面明明就是有的,报这个错误,我就认真看了,lib是在armeabi-v7a里面的,开始是:ndk { abiFilters 'armeabi'原创 2017-10-24 16:27:57 · 374 阅读 · 0 评论 -
android 反编译
转载请注明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/23564065开发的过程中,有时候可能会去使用别的app里面的图片,参考布局甚至代码等,但是一般的.apk都是经过代码混淆的,这里分享下使用一些工具进行反编译.apk文件,主要就是软件的分享和教大家如何使用。1、android-apktool 主要是进行转载 2017-10-13 10:32:15 · 278 阅读 · 0 评论 -
Android SufaceView 截图
首先错误的现象是你的代码显示不出来截图,可能显示的是黑色也可能是你父控件的背景的颜色,方正结果就是出不来截图。说一下原理吧,SufaceView有双缓冲机制,有个front buffer,一个back buffer也就是说有两个图,一个在前面界面显示,一个在后面准备,front buffer显示,back buffer就准备图片,这样就变得很快了是不是。我们一直截图获取得到的黑屏或者背景色,就原创 2017-10-19 16:54:37 · 546 阅读 · 0 评论 -
couldn't find so
1.我的app直接运行在设备上是可以使用的。2.app 放入system/app就一直报错,couldn't find ****.so。3.解决办法:3.1 首先导出第一个签了名的apk1。3.2 拷贝apk1拷贝成apk2.3.3 修改apk2后缀,为zip3.4 解压这个zip,看里面的lib3.5 把里面所有的lib push到system/lib中3.6 把原创 2018-01-06 15:08:39 · 560 阅读 · 0 评论 -
as 编译时提示error please select android sdk
在app/app.imlorderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />原创 2018-01-16 17:29:15 · 412 阅读 · 0 评论 -
Greendao 升级 数据丢失 数据迁移
最近更新:2018年3月6日18:47:26因为数据库添加字段,所以我就把 src中的schemaVersion +1,签完名之后测试,发现以前所有数据丢失了,顿时一身冷汗,太可怕了。之后在网上找资料发现DaoMaster中onUpgrade中 代码是:dropAllTables(db, true);onCreate(db);所以每次升级,都是先把所有表都删了,重新创建,这怎么可以,侮辱Gree...翻译 2018-02-02 11:16:05 · 1315 阅读 · 0 评论 -
Android Canvas的drawText()和文字居中方案
我自己总结:很重要1.我们总是设置居中 ,获取文字长度太麻烦2.默认的基准点是在左下角(leftbuttom,baseline),我们要把它放中间就好了3.x的好找 背景的中心,y 因为是baseline 也是中心 加上一点距离到baseline4.Paint bgRect=new Paint(); bgRect.setStyle(Paint.St...转载 2019-06-16 13:52:11 · 1517 阅读 · 0 评论 -
databinding ImageView src 无效 TextView background 无效
1.<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@{safeUnbox(viewModel.previewBg)}"/><TextView android:id="@+id/button_...原创 2019-05-20 16:35:01 · 1512 阅读 · 0 评论 -
ConstraintLayout 所有属性
1、基础值(以下是经常用到的值,很有规律)layout_constraintLeft_toLeftOf :当前View的右侧和另一个View的右侧位置对齐,与RelativeLayout的alignLeft属性相似***layout_constraintLeft_toRightOf ***:当前view的左侧会在另一个View的右侧位置 与RelativeLayout的toRightOf属性相似l...原创 2018-06-08 19:53:31 · 6607 阅读 · 0 评论 -
seekbar 无法设置高度minHeight 无效 和 通用的进度条背景
<!-- seekbar 样式--><style name="tallerBarStyle" parent="@android:style/Widget.SeekBar" > <item name="android:indeterminateOnly">false</item> <item name=&am原创 2018-06-13 12:05:49 · 2873 阅读 · 0 评论 -
Databinding 使用
第一:https://blog.youkuaiyun.com/qby_nianjun/article/details/79198166一、Databinding简单尝试 首先在Module app下build.gradle中配置databindingandroid{ ... dataBinding { enabled true } ...}1234...转载 2018-06-12 11:19:01 · 786 阅读 · 0 评论 -
获取最顶端的Top Activity和类名
1.我找了很多方法,以下是 《1》5.0之后 获取top activity 很多方法停用,用是可以用,但是有些条件下 获取是异常的,比如我这个是断网情况下,获取是异常的,我之前用的 是public String getTopActivityPackageName(Context context) { String topActivityPackage = null; Act...原创 2018-05-26 18:36:41 · 9168 阅读 · 1 评论 -
Retrofit 网络请求框架
1.首先我一开始使用的是Okhttp,后来要更新框架,我做了比较,决定还是用Retrofit。 Okhttp:适用那种大数据网络请求 Retrofit:频繁操作的网络请求 所以我们的请求大多都不是很大的,我就决定用Retrofit,再说Retrofit是在Okhttp进行一步封装,怎么样也应该比Okhttp好很多的,还有就是Retrofit和RxJava可以很好结合,所以就用Retro...原创 2018-05-05 14:33:54 · 188 阅读 · 0 评论 -
Android 读写U盘 的工具类
1.首先说一下问题,读取U盘里面的值是可以的,但是写的时候就会报错,是没有权限 报错 Permission denied2.首先看到这个问题,搜索,得出 运行时权限3.但是我想了想,我获取U盘值的时候没有出现,所以我读取的时候也不应该出现暂时排除运行时权限4.再搜索,大部分都是要获取到root权限,要么就是更改底层,我这边不能更改底层5.再搜索,找到一个插件。具体步原创 2018-03-21 17:32:11 · 4826 阅读 · 5 评论 -
Android 获取FPS
下面是代码,主要是new了FPSMeter之后 要循环调用fpsMeter.mesureFps(),想调用一次是不可能的。public class FPSMeter { //获得格式化类对象 DecimalFormat mdt; private int mFrameCount; private long mLastTime; private int mFps;原创 2017-10-18 20:31:15 · 1615 阅读 · 0 评论 -
android 打印 demo
1.首先说一下,网络上的打印全部都是热敏打印,就是pos机的打印,而我的是有线连接打印机,所以不使用。2.你要打印,你首先要看看你打印机是不是有打印插件,HP和三星都是有自己的的打印插件,我用的是HP,在360平台搜索打印插件,就出来了,你必须安装他们的插件,不然打印不了。3.就是代码了,一下是http://blog.youkuaiyun.com/sahadev_/article/details/原创 2017-09-19 21:08:30 · 2918 阅读 · 1 评论 -
androidstudio Parcelable
一、前言相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activity之间传输该类对象,就需要将数据序列化。Android中实现方式有两种,第一、实现Serializable接口,这种比较简单,直接声明就好;第二种,实现Parcelable接口,这种方式就比较复杂,往往需要写多些代码去实现,不过效率就比较高,还是值得推荐这种方式。那么,现在问题来了...因为实转载 2017-09-01 11:45:27 · 562 阅读 · 0 评论 -
Android 底部状态栏 显示与隐藏
本文转自:http://android.662p.com/thread-1453-1-1.html应该只有平板用得到这个吧。关闭底部状态栏:private void closeBar() { try { //需要root 权限 Build.VERSION_CODES vc = new Build.VERSION_CODES();转载 2017-06-09 14:48:44 · 1388 阅读 · 0 评论 -
创建 Gradle 耗时
AndroidStudio 每次创建新的项目都要新建Gradle ,即便进去了还是点击运行还是不行。解决:一:在你的Androidstudio安装目录下(E:\AndroidStudio\androidstudio\plugins\android\lib\templates\gradle\wrapper\gradle\wrapper)(我的是这个)的gradle-wrapper.prope原创 2017-05-19 17:43:23 · 433 阅读 · 0 评论 -
Error:SSL peer shut down incorrectly
这个是地址:http://services.gradle.org/distributions/在下面这个界面设置这三个选项我都试过,VPN也挂了,但是没有什么卵用。1.点击第一个 Use default gradle wrapper 点击Apply再点ok你就会在编辑页面的下方右下方出现正在刷新 然后就是下载,看好下载的是那个版本,就在http://service原创 2017-05-19 15:55:45 · 9578 阅读 · 0 评论 -
androidstudio 连接打印机
我这里连接的是打印机,不是小票机,大家看清楚了,目前我连接的是Hp 1112这个是可以的。首先 要下载hp的插件,android设备和打印机相连,android4.4以后,当然也可以修改底层,这个我不会,所以在只能在表层做一点,下载hp插件:Hp Print Service插件(这个在360手机助手里面有)下载安装就可以在设置里面的打印看到HP Inc. 就是它了。就不管了,进行下面操原创 2017-06-29 18:06:22 · 3676 阅读 · 1 评论 -
Android中AsyncTask使用详解
版权声明:本文为博主原创文章,未经博主允许不得转载。如果觉得文章不错,记得顶一下!GitHub: https://github.com/iSpring原文地址:http://blog.youkuaiyun.com/iispring/article/details/50639090在Android中我们可以通过Thread+Handler实现多线程通信,一种经典的使用场景转载 2017-06-29 13:50:13 · 279 阅读 · 0 评论 -
WebView 截长图
今天在APP架构师看到这个,因为以前做过有点模糊了,所以接他之手记一记。介绍 web 长图之前,先来说一下单屏图片的生成方案,和手机截图不同的是生成的图片不会显示顶部的状态栏、标题栏以及底部的菜单栏,可以满足不同的业务需求。有的时候我们需要将一个长 Web 网页生成图片分享出去,相似的例子就是手机端的各种便签应用,当便签内容超出一屏时,就需要将所有的内容生成一张长图对外转载 2017-06-01 15:12:37 · 2306 阅读 · 0 评论 -
bootanimation.zip 替换/更换 黑屏
第一步:首先我在网上找到bootanimation.zip,这个网上多的是,可以自己找一个,先试一试可以不可以。第二部:下载之后放到/data/cust/media(我的bootanimation在这个目录) ,这时候应该会报错,说是没有权限,这个时候就有两种方法 :第一种 用cmd adb shellsumount -o rw,remount -t yaffs2 /原创 2017-06-01 10:34:13 · 6173 阅读 · 1 评论 -
AndroidStudio 更换主题
换了一家公司,所有东西有自己重新配置,想想又要在网上重新搜索,不如自己记录,加深印象,加强了解每一个步骤原创 2017-05-19 11:45:49 · 443 阅读 · 0 评论 -
Android程序效率的几点建议
学习Android一年了,到现在为止开始要考虑 性能一些东西,看了APP架构师 还是有很多方面值得学习的。1.简介本文档介绍了关于提高Android程序效率的一些建议。读者应当将这些建议融入到编程的习惯当中。关于如何写出高效的代码,有以下两条基本原则:不要进行没有必要的工作如果能够避免,不要进行内存的管理分配。当你进行Android app的转载 2017-05-31 10:25:21 · 603 阅读 · 0 评论 -
APK瘦身之路
这是在微信公众号里面APP架构师 看的,先记下来。APK分析既然是要优化APK的大小,那首先就得看下APK文件的构成。Android Studio在2.2版本添加 APK Analyzer功能,可以直接打开apk文件,如下图所示 APK文件主要有如下几部分组成:从APK的构成中可以看出占比较大的几个部分,可以着重对其优化优转载 2017-05-31 10:13:40 · 563 阅读 · 0 评论 -
android 内部存储 更新apk
我这里是 更新用的的,不说多的 上源码:public class DownloadUtil { private final String TAG="DownloadUtil"; private static DownloadUtil downloadUtil; private final OkHttpClient okHttpClient; privat原创 2017-06-21 12:03:26 · 941 阅读 · 0 评论 -
android 框架
来自:杨超凡_金诚先生 APP架构师一.榜单介绍排行榜包括四大类:单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架混合开发框架:提供开发hybrid app、h5与webview结合能力、web app能力的框架企业级开源项目:可以独立运行的app,有极高的学习价值、思路借鉴意义书籍类开源项目:类似Open-sourc-proje转载 2017-06-22 09:41:15 · 556 阅读 · 0 评论 -
AndroidStudio fetching document
我是win7的在C:\Users\username\.AndroidStudio2.3\config\options找到jdk.table.xml 并把它拖到AndroidStudio中 找到javadocPath> roottype="composite"> roottype="simple"url="这里是google的文档地址" />原创 2017-06-22 11:55:45 · 538 阅读 · 0 评论 -
Android 熄屏
网上全是:PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG"); //屏幕会持续点亮 wakeLock.acq原创 2017-08-31 17:59:34 · 993 阅读 · 0 评论 -
Android 锁屏
1.在Activity中:final static int ENABLE_ADMIN = 1;final static int SUCESS = -1;private ComponentName mAdminName = null;onCreat中mAdminName = new ComponentName(this, AdminManageReceiver.class);Devic原创 2017-08-31 17:54:33 · 296 阅读 · 0 评论 -
android 检测USB是U盘还是外设
1UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); HashMap deviceList = manager.getDeviceList(); Iterator deviceIterator = deviceList.values(原创 2017-07-28 17:59:15 · 5498 阅读 · 4 评论