![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android开发
文章平均质量分 74
BtterLi
这个作者很懒,什么都没留下…
展开
-
Apk加固后多渠道打包
apk 加固后,多渠道打包。原创 2023-03-07 17:29:23 · 1833 阅读 · 3 评论 -
友盟离线推送(厂商通道)遇到的坑
接入友盟离线推送:友盟接入文档按照文档要求,基本可以完成,不过仍然遇到了点小问题。遇到的问题:1、OPPO收不到推送这个问题是公司运营的责任。账号相关的东西 都在公司运营那里,将OPPO 生成的 appkey appsecret appserversecret 相关参数 给了之后,云真机测试了多款手机都收不到离线推送。然后也是各种查找。最后没办法了,和运营从开始对接 相关参数才发现 配置的时候 ,将 appserversecret 配置成立 appsecret 的值。...原创 2020-12-21 12:00:43 · 2908 阅读 · 0 评论 -
Android Studio 升级到3.6 ,NDK相关cpp文件报红, this file is not part of the project
最近遇到一个小问题,AndroidStudio3.0上写的项目,升级到了Android Studio 3.6上,.cpp下的文件出现了问题:找不到相应的包,各种报红,并提示 :this file is not part of the project。虽然项目仍然可以编译,但是看着很不爽。而且没有代码提示功能了解决:网上都搜索了一些方法:更换NDK版本号、删除 : app\.externalNativeBuild\cmake下的debug和release两个目录等都...原创 2020-05-14 10:23:12 · 1552 阅读 · 0 评论 -
android 接入Google Pay 遇到的坑。
1、连接谷歌服务器的时候:billingResult.getResponseCode() = 3即:billingResult.getResponseCode() = BillingClient.BillingResponseCode.BILLING_UNAVAILABLE原因:国内地区不支持google支付。验证方法:打开 google play store ,在游戏—...原创 2019-11-11 15:51:08 · 8773 阅读 · 7 评论 -
android studio 开发 常见错误解决积累
1、新安装的Android Studio 运行项目是,报错解决:File——>Setting -——>Build,Execution——>Instant Run 把Enable Instant Run 去掉打钩就行了2、导入项目 报错 :No toolchains found in the NDK toolchains folder for ABI with...原创 2018-10-31 16:09:24 · 852 阅读 · 0 评论 -
面试题整理2018
要跳槽了,整理一份面试,方便查看。(不断更新中。。。。)目录JVM:1、JVM 的内存划分2、垃圾回收机制3、GC什么时候触发?4、类加载机制5、双亲委派模型Java:1、String、StringBuffer、StringBuilder的区别2、java中==和equals和hashCode的区别?3、HashMap Hashtable 的区别4、...原创 2018-11-12 18:22:03 · 764 阅读 · 0 评论 -
Android 插件化开发之apk换肤
以前的项目中做过一个功能,一键换肤。最近面试被问得到还挺多。有点忘了,抽个时间整理下。写个小Demo这里用到的是动态加载未安装的apk资源文件,然后访问apk中的资源文件,实现资源的替换。Demo 展示的是一个帧动画,我们模拟服务器下载apk 的方法,把apk 放到assert 目录中,先模拟下载(copy到sdk中),然后加载未安装apk中的动画资源。先看一下演示效果:首次,...原创 2018-12-14 16:14:18 · 446 阅读 · 0 评论 -
java2smali
Android Studio 下载 Java2Smail 插件:File——> Settings——> Plusigns 搜索 java2smali点击下载,下载完成后 重启Android Studio。使用:选中要转换的java文件,build——> Compile to samil 即可 转换结果:如果想学习smali 语言的话,...原创 2019-01-04 14:47:14 · 3862 阅读 · 1 评论 -
android retrofit2.0+rxjava2.0 封装
最近新开了一个新项目,准备用一下retrofit +rxjava 来做网络请求库。查看了一些牛人的博客,借鉴封装了一下自己的网络请求库参考:http://www.zhimengzhe.com/Androidkaifa/291654.htmlhttps://blog.csdn.net/silenceoo/article/details/75037576 封装后的使用:(取消订阅在Ba...原创 2019-01-10 15:11:36 · 1194 阅读 · 1 评论 -
android Image设置图片资源显示黑色。
项目中添加了各国国旗的资源,然后根据国家名称,找到不同的国旗图标。Android studio debug 模式下没有问题的,但是项目发布release版本后,有的国家的国旗显示为黑色的框。如图:根据name 找图片资源的方法: public static int getResource(Context context, String imageName) { ...原创 2019-02-25 13:08:54 · 2002 阅读 · 0 评论 -
按下Home键,再次点击图标,重新走启动页
开发中遇到这样一个问题,在程序主页面,点击home键,程序退到后台。当点击桌面图标的时候,会重新走启动页(引导页)。解决:把主页的activity 启动模式设置为android:launchMode="singleTask"设置后,基本可以解决问题。但是,测试 华为 8.0 版本的手机的时候,又复现了这个问题。解决:在启动页的 onCreate() 方法的super....原创 2019-03-20 12:31:23 · 604 阅读 · 0 评论 -
Android Toast封装点击多次只显示一次,并解决连续点击后,不在显示的问题
首先,Toast封装:public class ToastUtils { private static Toast toast; private static Application sContext; public static void init(Application application) { sContext = application;...原创 2019-04-12 18:01:19 · 6025 阅读 · 11 评论 -
Android Studio Build Variants 切换 release模式,不能运行
在项目调试的时候,想要手机直接运行要发布的 release 版本,可以通过 Android Studio 左侧的 Build Variants切换 release 或者 debug 版本。但是切换完之后,会发现 release 模式下,不能运行 app。解决:这是因为,release 版本需要给app 添加 签名。首先:点击 + 号:Name : 随便写...原创 2019-04-19 12:31:51 · 7724 阅读 · 1 评论 -
android 快速实现夜间模式
最近项目中遇到了一个问题,夜间模式在8.0以上的手机中不起作用,查看了一下原因,是夜间模式实现方法的问题。分两种情况介绍一下先看一下运行效果:第一种 是目前项目中用到的,是以前的开发人员写的,存在一些问题(不兼容8.0以上的版本),已解决第二种是Support Library 中自带的一种方法。 第一种:第一步 需要添加夜间模式资源,以-night为后缀日间模式 ...原创 2018-09-26 10:04:46 · 13669 阅读 · 3 评论 -
Android Studio 使用AIDL
以前在Eclipse 中写过aidl 。最近想在Android Studio 中实现以下。 我先写下我遇到的一个坑,困扰了我一下午才解决。在所有的代码都写好后,运行程序一点反应都没有。最后发现是权限的问题。我的是6.0的手机,默认是不支持关联启动的需要去手机 设置--》应用程序---》权限管理 ---》选择你的服务应用 打开关联启动 开始:原创 2017-07-25 13:44:11 · 358 阅读 · 0 评论 -
Android 下 class文件 转 dex
需求:将Android项目中的一个 XXX.class 文件 转成 XXX.dex 我们使用的工具是android sdk——>build-tools 下的 dx.bat工具 使用时,可以直接配置环境变量。或者 cmd 直接进入到该目录编译命令是 : dx --dex output=dex文件输出目录\+XX.文件名 dex文件输出目录 介绍完...原创 2018-03-07 15:41:04 · 4830 阅读 · 2 评论 -
短信备份与还原
最近在做一款手机安全卫士的App,其中有一个功能:短信备份与还原。本来感觉是一个很简单的功能,不过实现起来,遇到了很多的问题,多以就拿来分享一下。短信备份的功能很好实现,浏览器随便搜一下就能找到答案,这里就不在多说。主要是短信还原的问题。对于安卓4.4以前,很简单的一段代码就能实现, ContentResolver resolv原创 2015-11-26 17:04:04 · 2063 阅读 · 0 评论 -
多线程下载
多线程下载的实现:1、首先获取文件的长度。2、设置线程的个数3、根据长度和线程个数计算每一个线程需要下载的长度。例如:3个线程下载一个为length=10个字节的文件int bolckSize=length/3;则每一部分需要下载的大小为:线程 1 :int start=0*blockSize int end=1*blockSize-1;线程 2原创 2016-06-24 13:48:12 · 2957 阅读 · 0 评论 -
安卓面试题
1、Android中有哪几种解析xml的方式,原理,区别 链接:http://blog.sina.com.cn/s/blog_5a48dd2d0100sdo9.html2、android中解析json方法,原理,区别链接:http://www.2cto.com/kf/201401/270452.html链接:http://my.oschina.net/sammy19转载 2016-06-26 22:58:00 · 979 阅读 · 0 评论 -
Android Studio 运行时乱码
最近把Eclipse 的项目导入到Android Studio。Eclipse 的编码格式是 GBK。 而Android Studio 的默认的编码是UTF-8所以在运行时出现。导致不能运行项目。 解决方法 :1、首先设置全局的编码格式File--->Setting---->Editor--->Code Style --->File Encodings 把编码格式改为U原创 2017-07-13 10:28:50 · 1453 阅读 · 0 评论 -
Eclipse 使用ButterKnife 报错
Eclipse 导入BufferKnife jar包,直接运行会报错。还需要以下配置1、右键你的项目--->Properties----->Java Compiler2、勾选后,把jar包添加进入,然后重新编译操作完成,再次运行就不会包空指针的错误了。原创 2017-08-03 16:46:39 · 365 阅读 · 0 评论 -
WebSetting setTextSize() 方法过期--setTextZoom
WebSetting setTextsize 在API14版本以上已废弃。setTextsize 可以设置5中字体大小格式,分别代表了不同的百分比,分为SMALLEST is 50%SMALLER is 75%NORMAL is 100%LARGER is 150%LARGEST is 200%替换为setTextZoom(int arg);该方法原创 2017-11-08 11:45:57 · 4778 阅读 · 0 评论 -
ListView 复用导致 CheckBox 选中状态错乱
在ListView嵌套CheckBox 等一些有标记的View时,如果不做处理,在ListView 滑动的时候,会造成View的选中状态错乱。比如:可以看到 刚开始选中了demo2 和demo3。滑动到下一页的时候,demo10 和demo11 也被选中。当然要解决这个问题很简单。只需要在 适配器Adapter 中对CheckBox的选中状态做一下记录。上代码:pu原创 2018-01-22 18:06:33 · 416 阅读 · 0 评论 -
自定义Editext 底部下划线,并根据焦点有无改变颜色
最近一个项目效果,输入框只保留底部下划线,并可以根据是否获取到焦点变色。首先想到了自定义View。但是感觉为这么个小功能,有点大材小用。查了一下资料,发现使用自定义背景样式就可以简单的实现。特此记录。首先,需要绘制绘制一个Edittext的背景边框。填充色设置为透明 设置边框宽度和颜色 --> android:w原创 2018-02-02 11:38:59 · 1680 阅读 · 0 评论 -
适配器模式 对 BaseAdapter 抽取封装,减少代码冗余。
BaseAdapter 适配器,是我们经常使用的。可能一个项目中都有十几甚至几十个。细心的同学可能会发现,每一个适配器的结构基本相同,这就让我们想到了代码抽取。 BaseAdater 本身使用的就是适配器模式。相信大家对这种模式都很了解,所以今天就使用适配器模式对BaseAdapter 的代码进行抽取封装。接下来会对比普通写法和封装完之后的写法:首先:通常的写法ListView 的 i原创 2018-02-02 15:14:23 · 222 阅读 · 0 评论 -
Android Studio 插件 GsonFormat 自动生成实体类
Android Studio 中自带 GsonFormat 插件,可以根据你的Json 串,自动生成相应的实体类。非常方便。介绍下使用教程:第一步 : File --->Setting------>Plugins,然后搜索GsonFormat。如果列表里没有 可以点击中间的 Search in reposit 搜索第二部 找到控原创 2018-01-26 17:21:27 · 921 阅读 · 0 评论 -
MVP模式的简单应用
MVP :M-model,即javaBean 数据模型层;V-view,视图层,常用的即Activity Fragment,这里是定义一个接口IView,Activity去实现IView的写法;P-presenter,数据处理层,所有的数据逻辑,业务逻辑都在这里处理;详细介绍就不多说,自己写一个Demo,基本就能理解;MVP 实例:获取图片数据,并用ListView进行展示原创 2018-02-05 16:21:14 · 212 阅读 · 0 评论 -
通过代理模式,对第三方网络请求框架进行封装,实现任意切换网络框架
最近在网上学习了一篇课程,讲的是通过代理模式对第三方框架进行封装。感觉讲的很不错,受益良多,特此记录。 首先什么是代理模式? 代理模式就是:为其他对象提供一种代理,以控制对这个对象的访问。 举个例子:没空下去吃饭,找个同事帮忙买饭就是代理模式;平常租房子,嫌麻烦,说出房子条件,让找中介帮忙找,也是一种代理模式。 了解了代理模式,接下来的代码就好理解了。 首先我们的使用场原创 2018-02-06 17:08:16 · 710 阅读 · 1 评论 -
自定义适配器接口的使用
安卓开发时,LiseView会经常使用,所以自定义适配器是必须要掌握的。在适配器中,经常会有按钮存在,会涉及到点击事件等很多功能,如果都在适配器中写的话,会导致适配器很臃肿,而且,有些参数不好传递过来,所以这时使用接口,会非常方便。列如:我做了一个简单的手机应用管理,效果如下;这是“删除按钮“就可以用接口来实现。方法如下:新建一个接口public inter原创 2015-10-13 09:47:29 · 1312 阅读 · 0 评论