自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

funnyzhao的博客

Developer

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

原创 单工程多App实现指南一

一.背景:目前我们的app主要是在googlePlay上架, 为了扩大覆盖面,我们需要在华为,小米等海外商店上架自己的App,但因为是海外商店的原因,要求包名id不一样,也就是一个新的app。二.存在问题:我们目前的工程配置是实现不了了,乃至于在好几次给华为,小米单独打包的时候,都是拉取之前配置好代码的华为、小米分支。单独打包。这导致每次打包都很费时间,需要切分支,而且无法没有影响的合入不断迭代的功能。在googleplay商店和华为商店的App在功能上也有所不同,主要是登录服务体系与sku购置,支

2020-08-07 23:09:43 595 4

原创 Retrofit2使用简记

/* *随时更新,学习使用中 * *————————————-/ 最近在项目中使用了Retrofit的这个网络请求库,下面记录下使用到的一些知识点。1.注解GETPOSTHeadersBodyQuery示例1:Get请求 @GET("login") /** *BaseURL是这个:https://api.test.cn//1/ *使用get请求一般传入URL的占位符,拼接起

2016-10-10 20:11:49 313

原创 NavigationView报错小记

在开始之前,先记录一下今天因为使用design库中的NavigationView报错而引发的一场解决风暴。(简直想吐血…)一、NavigationView错误(探索总结)出了什么错误?java.lang.RuntimeException: Unable to start activity ComponentInfo{marketcloud.com.marketcloudexample/marke

2016-10-01 00:33:01 2233

原创 Spring MVC开发环境搭建

鬼知道我经历了什么,花了两天时间各种折腾,终于也是把这个开发环境搭建好了。起因:因为我的毕设是个用户主导的APP,所以数据、图片都要保存到服务器上。在这之前,我用过Bmob后端云,对各个平台的支持还都蛮不错的,文档也很系统。但我个人觉得,这是在原有的流程上做了封装,特别是对于初级的开发者来说并不好。比如Android的网络请求,我们知道的有原生的HttpURLConnection,HttpClien

2016-08-12 18:21:11 745

原创 开发过程中的算法小技巧:

在开发过程中,总会在一些算法思维上卡壳,现在决定记录下来,希望熟能生巧,以后经过努力,克服这个不足。1.多对象切换,count>=3,用数组遍历的方式: (下面是个自己思维卡壳第2次的例子,所以决定记录下来:) 方案 这个是比较灵活的解决方法:取自以前做unity捕鱼达人的炮弹切换例子: if (i < paodans.Length-1) {

2016-07-31 09:39:45 340

原创 [7]复用类(继承和组合的选择)0X03

看标题相信你已经懂了,这部分讲的就是帮助你分析选择继承还是组合。OK,看下java编程思想的说法: 组合技术通常用于想在新类中使用现有类的功能而非它的接口这种情形。看到这,暂且不考虑接口的知识,只考虑组合这种方式。一般来说,我们在组合的时候会把成员对象声明为private,只对外提供公共可访问的接口,而隐藏具体的实现,防止不必要的修改。但是也有一些特例,这个跟你的业务逻辑或者负责的模

2016-07-27 10:45:51 372 1

原创 [7]复用类0X02

代理所谓代理,并不是java直接提供支持的某个语法或特性,而是组合和继承的”中庸之道”。 下面我们上代码来演示这种情况:package me.funnyzhao.ship;/** * 太空船控制模块 * @author dell */public class SpaceShipControls { void up(int velocity){} void down(int

2016-07-26 10:58:10 316

原创 [7]复用类 0X01

复用代码的两种方式: 1.组合 2.继承每一个非基本类型的对象都有一个toString()方法。引用的初始化: 类中域的基本数据类型能够自动被初始化为”零”,但是对象引用会被初始化为null,如果这时你试图为他们调用任何方法,都会得到一个空指针异常。然而,在不抛出异常的情况下,仍旧可以打印一个null引用。初始化引用的位置: 1.在定义对象的地方,意味着它们总是能够在

2016-07-25 14:42:39 249

原创 [6]访问权限控制 0X03

接口和实现 访问权限的控制常被称为是“具体实现的隐藏”。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为是“封装”。其结果是一个同时带有特征和行为的数据类型。封装的原因 1.为了设定客户端程序员对代码的是否可以使用的边界。 2.接口和具体实现的分离:可以随意修改非public的东西,而不会对客户端代码带来影响。建议的书写方式public class OrganizedByAcce

2016-07-25 11:24:04 480

原创 [6]访问控制权限 0X02

Java访问权限修饰词 如果不提供任何访问权限修饰词,则意味着它是“包访问权限”,因此,无论如何所有事物都具有某种形式的访问权限控制。java的访问权限共分为四种:public、protected、private、包访问权限(也就是不使用修饰词默认的),通过学习,下面来具体认识:(1)包访问权限包访问权限也就是没有关键字的默认访问权限,作用是:对于当前包中的所有其他类都可以访问这个成员,而对于

2016-07-22 16:54:34 387

原创 [6]访问控制权限 0X01(隐藏具体实现)

[6]访问控制权限 0X01(隐藏具体实现)前言参考《java编程思想》一书,发现好的程序并不是一成不变的,可能是在多次的反复修改后才会变的完美,因此就会存在一些问题:比如通常会有一些消费者(负责其他模块的程序员)需要你的代码在某些方面保持不变,而你却可能需要修改,这时,合理的使用访问修饰符可以有效解决这一问题。java访问修饰符(权限从大到小)

2016-07-21 20:39:11 473

原创 Activity启动模式

AndroidMainfest启动模式 1.standard默认的启动模式,如果不指定Activity的启动模式,则使用这种方式启动Activity.这种启动模式每次都会创建新的实例,每次创建Activity后,都会创建新的MainActivity覆盖在原Activity上。 2.singleTop如果指定启动Activity为singleTop模式,那么在启动时,系统会先判断当前栈顶的

2016-07-17 12:00:22 264

原创 Activity生命周期

一、活动的生命周期•返回栈Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合。这个栈也被称作返回栈(Back Stack)。栈是一种后进先出的数据结构。下图表示了返回栈是如何管理活动入栈出栈操作的。 •活动状态 •活动的的生存期Activity类中定义了7个回调方法,覆盖了活动生命周期的每一个环节。1.onCreate() 在活动第一次被创建时调用;在此方法

2016-07-17 11:47:33 343

原创 [2]一切都是对象

对于是否初始化变量(类中的成员变量||局部变量/非某个类的字段)的解析: 摘抄:基本成员默认值若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值(具体参照–>表),当变量作为类的成员使用时,java才确保给定其默认值,以确保那些是基本类型的成员变量得到初始化,防止产生程序错误。但是,这些初始值对你的程序来说,可能是不正确的,甚至是不合法的。所以最好明确地对变量进行

2016-07-17 11:20:23 262

原创 Fragment学习笔记

1.Fragment的介绍(Fragment英语翻译为碎片,片段。在我的直观想象中,Fragment它就像是那种魔法碎片一样,可以自由变换,自由组合) Fragment是在Android 3.0版本引入的概念,是为了支持平板设备上更加灵活的UI设计。简单的说,它就像是activity的一个模块零件,通过它,可以利用屏幕空间设计出更合理的UI搭配。

2016-07-17 10:49:39 350 2

原创 报道一日记

地点:百战网吧  ,外面闷热至极,待在网吧的一个小角落,想起我得给自己好好弄个博客了。

2016-07-07 16:29:37 300

空空如也

空空如也

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

TA关注的人

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