自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ctianju的博客

态度决定一切

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

原创 FireBase 最新版本消息推送使用 (端内和端外)

1、端内推送测试操作需要杀掉app再次打开会进行推送,端外推送直接杀掉app即可;2、在网站上一定要打开google API服务,不然发送消息没反应;3,要支持Google 服务,并且设备可以科学上网;github项目地址!!!!!

2024-06-05 17:42:05 819 1

原创 Mac系统重装已解决:恢复服务器上的安装信息已被破坏

Mac 恢复服务器上的安装信息已被破坏

2022-08-25 17:00:20 16488 3

原创 Android订单更多操作popwindow

转发备注:背景淘宝,京东等购物类App订单列表都有“更多”着操作,比如删除订单,查看物流等操作;分析Android自带的PopWindow组件就能很好的满足,但是还有问题需要分析解决:1、弹框的方向问题,如果列表滑动到底部需要向上弹,顶部就向下弹;解决:计算点击“更多”文字的位置,来动态的改变弹出的方向2、弹框的背景样式;解决:最简单利用点9图片作为背景3、订单列表的 item 数据返回问题解决:和后端沟通,更多操作的按钮就放到一个list,普通的就放到一个list4、列表按钮太多放不

2021-12-23 17:38:20 2506

原创 mac 部署nexus私服库

需求但凡涉及项目开发,难免会用到第三方库,或者使用到一些组件(公司最为常见),迫切的需要一个管理组件第三方依赖的服务.本篇围绕nexus,github 介绍搭建自己的仓库.基本概念搭建私服仓库开源仓库问题点总结...

2021-08-11 21:45:00 749

原创 Android Activity切换多个Fragment

背景展示一个注销流程,就一个Activity + 多个fragment实现,同一个viewModel 数据也可同步,但是希望回退再次进入要重新初始化页面不要保留之前的。实现说明Activity 采取 下面方式添加Fragment:if (frag== null) {frag = MyFragment()}}replace(R.id.logout_content, frag) // 每次都会销毁进入的时候再重建,生命周期会重新走addToBackStack(null) // 需要有,方便返

2021-07-30 13:57:38 629

原创 Android Adapter删除Item IndexOutOfBoundsException 问题

问题同事遇到需求:删除列表中item,点击事件的position 就溢出;分析涉及到RecyclerView 的方法:dataList.remove(position);notifyItemRemoved(position);notifyItemRangeRemoved(position,mDataSets.size()-position);

2021-06-17 10:55:54 451

原创 Android TextView的setHint不生效

问题TextView、如果先设置了setText(),setHint()就会没作用,先setHint()、setText() 就行;分析1、setHint()源码: /** * Sets the text to be displayed when the text of the TextView is empty, * from a resource. * * @attr ref android.R.styleable#TextView_hint

2021-06-14 13:52:55 1326 4

原创 AndroidStudio Gradle工具功能不显示

背景新电脑装了AndroidStudio 打包的时候右边Gradle工具空空如也,各种路径检查也是有的,如下:解决setting —> Experimental 去掉所有勾选,如果没生效,退出再进,刷新会慢:这样就行

2021-06-13 17:44:25 1869

原创 字符串String equals和 ==

背景分不清 equals 和 == 到底比较的是什么?equals 使用细节描述:二者区别:简单理解内存,比作一个房间,里面住了一个人equals 比较房间里面的人是不是同一个人,比较的是内容;== 比较的是这个房间是不是同一个;使用细节:错误写法---------------------------------------// str 可能为空会异常 public void fn(String str){ if (str.equals("abc")){

2021-06-13 17:34:08 63

原创 城市地址选择器-PopupWindow+ListView实现

转载地址:背景需求: 需要地址筛选,得到选择的省、市、区ID传给接口加载出列表;求解: App中城市地址筛选器选择不同地址,查询后台接口刷新列表,网上大多类似IOS风格滚轮的地址选择器,查找无果,就简单通过PopWindow内嵌ListView实现联动选择;先上效果图:描述产品经理可能要的需求:一、没有全部地区,默认显示:省–>市—>区二、省有全部地区,市没全部地区,区有全部地区,三、省、市、区都有全部地区.产品可能想要的联动效果:一、打开就显示省的列表,市的列表,区的列表

2021-06-13 15:57:17 304 3

原创 AndroidStudio Gradle App文件命名

背景网上的很多打包方式已经过时,会报错,Gradle sync failed: Cannot set the value of read-only property ‘outputFile’比如类似这样的:applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile !

2021-06-07 17:27:25 125

原创 判断回文 - 3

转载:题目给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。分析回文:对称的java代码/** * 判断是否有回文 */public class StrJudge { private static boolean judge(String sourceStr){ // 利用java的反转函数 return sourceStr.equals(new StringBuilder(sourceStr).reverse(

2021-05-17 10:18:26 77

原创 斐波那契数列 - 4

题目大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<39分析斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>

2021-05-17 10:16:46 146

原创 反转字符串 - 5

题目写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)解析一、直接反向输出二、将字符数组反转java代码mport java.util.ArrayList;import java.util.List;public class ReverseString { public static void main(String[] args) { toReverse("abcdefg"); } // 方法一:直接反向输

2021-05-17 10:15:32 50

原创 反转链表 - 8

转载出处:题目输入一个链表,反转链表后,输出新链表的表头。思路利用链表特性,依赖两个临时节点,进行链表的遍历赋值java代码public class ReverseList { public static void main(String[] args) { ListNode listNode = new ListNode(1); ListNode listNode2 = new ListNode(2); ListNode listNod

2021-05-13 13:17:39 49

原创 跳台阶 - 7

转载出处:题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)思路递归思想public class JumpLadder { public static void main(String[] args) { JumpLadder jumpLadder = new JumpLadder(); System.out.println(String.format("Count:%d", jumpLa

2021-05-13 13:11:56 53

原创 反转整数 - 6

转载出处:题目将给出的32位整数x翻转。例1:x=123,返回321例2:x=-123,返回-321java 代码public class ReverseInteger { public int reverse(int x) { int recv = 0; while (x != 0) { int pop = x % 10; recv = recv * 10 + pop; x = x

2021-05-13 13:09:01 51

原创 括号序列,字符匹配 -5

转载出处:题目给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。分析采用栈的特性,先进后出来进行,先把一边的符号放入,不存在马上返回false,成立就继续判断后续java代码public class SequenceOrder { public static void main(String[] args) {

2021-05-13 13:01:43 69

原创 求两整数之和 - 4

转载出处:题目给出的数组为 {20, 70, 110, 150},目标值为90输出 index1=1, index2=2解析两种方式,<一>:暴力遍历,复杂度 n^2. <二> 利用减法,map方式java代码两种方式import java.util.HashMap;import java.util.Map;public class TwoSum { public static void main(String[] args) { int

2021-05-13 12:54:29 57

原创 合并有序链表 - 3

转载出处:题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的思路递归不断深入,每次都返回当前的节点,输入:[1,3,5,8,17] ,[2,4,7,9,250],输出:[1 2 3 4 5 7 8 9 16 250 ]java代码public class MergeListNode { public static void main(String[] args) { ListNode listNode = new Lis

2021-05-13 12:48:30 87

原创 用两个栈来实现一个队列 - 2

解题思路栈:先进后出,队列:先进先出

2021-05-13 12:31:58 45

原创 子数组最大累计和问题 - 1

题目描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.题目保证没有全为负数的数据[要求]时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)分析利用temp变量保存当前累加的和,如果为负数就为0 ,重新开始计算,考察知识点:分治,动态规划java代码public class MaxofSubArray { public static

2021-05-13 12:08:45 68

原创 AndroidStudio升级gradle 6.5失败

背景组员采用新版本的AndroidStudio gradle也使用6.5,于是果断升级,显示gradle 下载不成功,Could not install Gradle distribution,而且项目内部还多了文件夹作为android开发,应该都尝试过自己单独[去下载gradle压缩包],放在本地,我的是mac系统,就放在/Users/xxx/.gradle/wrapper/dists/下,重启还是无用,着急了解决后面才发现是升级之后Studio的项目内部多了个文件夹最后发现修改了gradl

2021-03-23 16:12:05 584

原创 Android jni Debug没问题,Release 异常

Android jni Debug没问题,Release 出问题一 、背景: app包直接运行debug版本不会报错,打包release版就会崩溃,日志定位到 jni 函数位置;二、jni 函数主要内容char result;jobject resultObj = (*env)->CallObjectMethod(env, instance, midGet, ipStr);const char *result_str = (*env)->GetStringUT...

2020-11-25 20:01:17 736

原创 Android Activity 自动销毁并重启,程序无异常

一、背景 开发中涉及到种子卡和业务卡之间的切换,遇到界面卡住,activity生命周期销毁并自动重启,Android log并无异常;然而业务卡和业务卡之间切换并不会出现;二、分析出现该问题第一时间想到了内部链路太长阻塞超时导致,因为内部涉及到 java ,以及多个so的互相调用;花了很长时间去跟踪日志,无异常; 回归android原本逻辑,activity的生命周期重新调用第一时间是横竖屏切换,会导致,我设置了 android:screenOrientation="portra...

2020-10-19 10:07:14 912

原创 AndroidStudio升级报错,Aapt2Exception,NDK_PROJECT_PATH=null

更新AndroidStudio3.2.1之后 异常:1:Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.htm...

2018-12-24 11:18:47 601

原创 Gson显示空值字段GsonBuilder gsonBuilder

数据结构中没有给字段赋值或者设置 null,序列化的 JSON 中默认不会出现该字段的, Gson 提供了设置的方法,GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.serializeNulls()Gson gson = gsonBuilder.create();Person user = new Perso...

2018-12-14 10:52:30 1106

原创 基于google ExoPlayer 简单自定义播放界面

1. 基于google ExoPlayer播放m3u8,mp4等文件  简单自定义播放界面,新建一个Layout布局文件命名为exo_playback_control_view,控件的id不能随便起,要与exoPlayer原来PlaybackControlView的布局控件id,名称一致,布局名称不一定是exo_playback_control_view,不过需要在SimpleEx

2018-02-02 15:24:39 3378

原创 Android学习总结之性能优化

遵循两点原则:不做多余事,尽量节省内存。一.尽量使用:1、本地方法。:比如String.indexOf等对象自带的方法;2、静态代替虚拟:非静态调用需要设置虚拟方法导向表,可见静态也是提升途径;所以方法不需要访问外部对象那就把它设置为静态方法吧。3、虚方法高于接口:java下定义对象我们都爱使用接口声明,new子类,但是Android下这样引用接口的调用会花费两倍以上时间。

2015-09-07 11:28:35 195

空空如也

空空如也

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

TA关注的人

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