自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(276)
  • 资源 (3)
  • 收藏
  • 关注

原创 移掉K位数字

另一种解题思路:输入: num = “1432219”, k = 3输出: “1219”解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。以上面的 num = "1432219", k = 3 为例,最终的结果肯定是从 1432219 中踢除掉 3 个字符得到的,也就是说最终的结果是从 1432219 中挑选出来的 num.length-3=4 个字符按原...

2019-03-30 14:53:18 428

原创 为什么ActivityThread中有个mAllApplications?

一直想不通ActivityThread中为什么会有个 final ArrayList<Application> mAllApplications = new ArrayList<Application>();字段 ,mAllApplications和mInitialApplication又是什么关系,翻了下源码,也没找到为什么还需要个mAllApplications字段。...

2019-03-22 17:57:09 1005 2

原创 一个Activity一个线程

只能在主线程更新ui?不存在的,任何一个Activity都可以在子线程中(然并卵,好像没啥卵用)具体实现替换ActivityThread.mH.callback从而监听Activity生命周期等一系列对Activity的调用取出handleMessage(final Message msg)的msg中的binder,每一个binder对应一个Activity,为该binder对象创建一...

2018-12-29 21:13:40 1774

原创 Android线程优先级对性能的影响

android可以通过调用thread对象的setPriority方法为线程设置优先级,优先级只能取1~10之间的整数。优先级越大意味着线程优先级越高,在大量并发时享有更多的cpu执行时间。android主线程默认优先级是5,我们可以按照如下代码来测试不同优先级对性能的影响。 public static void testThreadPriority() { for...

2018-12-10 15:04:18 5438

原创 android子线程不能更新UI?

更新ui时通常(后面会讲不调用的情况)会调用如下方法检查更新ui的线程,通常子线程更新ui报错就是viewrootimpl中这句代码导致的 void checkThread() { if (mThread != Thread.currentThread()) { throw new CalledFromWrongThreadException( ...

2018-12-02 20:36:49 3583 3

原创 细数Tinker接入的那些坑

目录替换Application打包失败分包替换Application按照TInker官方文档,接入Tinker Patch需要把原来项目中Application的代码移动到ApplicationLike中,然而这可不是件小事情,我们的application可能包含各种初始化,并且很多地方调用了application的public方法。比如import android.support.mul...

2018-11-09 22:54:20 1113

原创 Android 比例缩放viewgroup

package com.wanjian.view;import android.content.Context;import android.content.res.TypedArray;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;import com

2017-11-27 11:06:11 6362

原创 android实现和web一样的阴影效果

代码package com.wanjian.shadowlib;import android.graphics.BlurMaskFilter;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Path;import android.graphics.RectF;

2017-09-20 16:15:20 1218

原创 android实现和web一样的圆角

当一条边的两个圆角半径和超过该边长度时,需要特殊处理下,可以按照如下步骤实现:依次对每条边进行如下操作:      记该边的两个圆角半径和为s,该边长为l,若s大于l则四个圆角进行如下操作             ltCorner=ltCorner*(l/s),  rtCorner=rtCorner*(l/s),  lbCorner=lbCorner*(l/s),  rbCorner=

2017-09-15 20:08:20 442

原创 js 实例 及 原型

function print(txt) { document.body.innerHTML += txt + ''; } var obj = { constructor: function () { this.name = "haha" }, name: 'xm', ge

2017-06-09 17:45:45 758

原创 js es6 export import

目前需要使用babel吧es6代码转成es5才可以执行 // import * as modul from './module'// modul.print(modul.name)//Michael// modul.log('hahah')//--->hahahimport {log,print as println,name} from './module'impor

2017-05-24 18:32:54 1088

原创 js es6 类,抽象

function print(txt) { console.log(txt)}//类定义几种方式//方式1let MyClass = class My { constructor() { } getClassName() { return My.name; }};let inst = new MyClass();print

2017-05-24 15:17:36 4221

原创 javascript es6

function print(txt) { console.log(txt)}let set = new Set([2, 3, 4]);//用数组初始化set,会自动过滤掉重复元素,同时保持数组中原来元素的先后顺序[5, 6, 7, 8, 7, 6, 5].forEach((p1, p2, p3) => { set.add(p1)});for (let v of se

2017-05-23 21:06:56 428

原创 jquery

Octopus .h { display: flex; flex-direction: row; } .v { display: flex; flex-direction: column;

2017-05-19 15:14:17 447

原创 添加删除元素,addClass, removeClass, css

Title $(function () { $('#but').click(function (event) { //append prepend 内部添加// $('.container').append('粗体')// 测试文本粗体测试文本 粗体粗体粗体//

2017-05-12 11:42:33 1362

原创 text、html、val

Title $(function () { $('#but').click(function (event) {// alert($('#container').text()) //测试文本粗体测试文本// alert($('#container').html())

2017-05-12 11:19:56 458

原创 jquery动画2

Title $(function () { $('#but').click(function (event) {// animate()可以指定持续时间和结束回调// 默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。//

2017-05-12 10:51:55 517

原创 jquery动画1

Title $(function () { $('#but').click(function (event) {// 对于hide、show、toggle、fadeIn、fadeOut、fadeToggle、fadeTo、slideDown、// slideUp、sl

2017-05-12 10:30:42 426

原创 js语法5---canvas圆角图片

Title canvas to draw window.onload=function () { var drawing = document.getElementById('drawing'); if (drawing.getContext) { print('suppo

2017-05-06 22:30:20 5132

原创 js语法笔记4---canvas

Title canvas to draw var drawing = document.getElementById('drawing'); if (drawing.getContext) { print('support') var context = drawing.getContext('2

2017-05-06 22:03:04 464

原创 js语法笔记3

Title function print(txt) { document.getElementById("container").innerHTML += ('\n') + txt; } document.body.onclick = function () { window.loc

2017-05-05 16:24:39 418

原创 js语法笔记2

function print(txt) { document.getElementById("container").innerHTML += ('\n') + txt; } console.log = print; console.log("hello") function fact(num) { if (num <=

2017-05-05 11:40:55 357

原创 js语法笔记

Title function print(txt) { document.getElementById("container").innerHTML += ('\n') + txt; } document.body.onclick = function () { window.loc

2017-05-04 18:16:54 607

原创 打不死的小强永不crash的Android

使用方式自定义Application继承自android的Application,并在Application中初始化,越早初始化越好,可以在Aplication的onCreate中初始化import android.app.Application;import android.os.Handler;import android.os.Looper;import android.util.Log

2017-02-14 14:40:15 1483

原创 android ui调试工具

⬇️    https://android-notes.github.io/2016/11/30/SAK/

2017-02-09 18:16:36 975

原创 优雅实现RecyclerView多种布局

要优雅就要符合 开闭原则,当增加新的类型事只能扩展不能修改源代码。package com.muiltityitem.adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.ViewGroup;import java.uti

2017-01-12 18:09:14 1153

原创 ubuntu搭建内网dns服务器

公司中经常会搭建一些内部的网站,这些网站只能在公司的局域网中使用(链接同一个路由器的电脑),当访问这些网站时需要在浏览器中手动输入服务器ip地址进行访问,无法通过域名访问(域名:baidu.com 就是一个域名),这时可以通过搭建公司内部的dns服务器解决。 现在想通过访问 http://mygitlab.com 就可以访问到位于 192.168.0.100 主机上的自己搭建的gitlab服务器

2016-12-25 15:03:50 24227 3

原创 ubuntu搭建gitlab服务器

gitlab官网 有详细搭建教程, 可以安照其要求搭建,总共只需要敲几行命令就可以搞定,顺利的话5分钟就可以跑起来。选择ubuntu版本我的是最新的16.04.选好系统版本后会有如下安装命令接下来需要输入命令来部署gitlab,执行命令的路径在默认路径下就行,比如我的在 home/wanjian 路径下 执行 sudo apt-get install curl openssh-server ca-

2016-12-25 14:00:07 13170

原创 MaskFilter

public class MaskFilterView extends View { public MaskFilterView(Context context) { super(context); } public MaskFilterView(Context context, AttributeSet attrs) { super(co

2016-10-30 15:01:21 552

原创 android屏幕显示布局边框及宽高

在不开启开发者选项的情况下 直接在屏幕显示当前布局,内外边距,大小,方便产品,测试查看布局大小 基本思路: 为activty添加蒙层((ViewGroup) activity.getWindow().getDecorView()).addView(layoutView); 获取activity布局,递归遍历控件,获取每个控件决定位置,宽高,内外边距,然后画在layoutVi

2016-10-22 16:36:26 2514

原创 android子线程更新UI

看到一篇分析子线程能否更新ui的文章,最近恰巧也看到了这块的东西,文章中指出回顾前面的分析,总结一下: ViewRootImpl的创建在onResume方法回调之后,而我们一开篇是在onCreate方法中创建了子线程并访问UI, 在那个时刻,ViewRootImpl是没有创建的,无法检测当前线程是否是UI线程,所以程序没有崩溃一样能跑起来, 而

2016-10-21 13:06:32 596

原创 android兼容各版本共享view beta1

使用public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.l

2016-10-18 15:21:36 611

原创 swift String

for i in 2...5 { print("2..5 \(i)")}for i in 2..<5 { print("2..<5 \(i)")}for c in "abc

2016-10-11 15:37:18 330

翻译 swift Tuples

TuplesTuples 可以用一对圆括号包裹若干个值,这些值的类型可以互不相同。例如, (404, "Not Found") 就可以表示一个HTTP状态码.let http404Error = (404, "Not Found")http404Error 的类型是 (Int, String), 他等于 (404, "Not Found")Tuples中可以包含任意类型你可以像下面这样赋值le

2016-10-10 17:18:08 303

原创 willSet didSet

willSet didSetclass EatBaBa { var who="musi"{ willSet{ } didSet{ self.who="musi" } } var much=1000{ didSet(newValue){ self.mu

2016-10-10 17:16:29 356

原创 Android Studio JNI

环境配置下载ndk开发包,400多M ,点击下载 ,下载位置任意,比如放到文档/ndk中 控制台切换到ndk目录,执行 chmod a+x android-ndk-r10d-darwin-x86_64.bin (android-ndk-r10d-darwin-x86_64.bin是文件名)在ndk目录执行解压命令 ./android-ndk-r10d-darwin-x86_64.bin 解压

2016-10-10 15:45:08 272

原创 swift类声明、继承

//声明类class Person { var name :String var age:Int //若声明变量时变量没初始化需要在init中为其初始化,若声明时都已经初始化则不需要提供init init(name:String,age:Int) { self.age=age self.name=name }

2016-10-10 14:27:11 539

原创 swift入门(1)

swift不需要main作为入口,输出hello world 只需要下面一行代码print("Hello World!")语句结尾也不需要分号声明变量用var,常量用let,声明后若同时赋值则不需要声明类型,编译器会根据值推测变量类型,类型确定后不能改变其类型。var name="xiaoming"var age :Intage=10var num:Floa

2016-10-10 12:16:20 400

原创 JsonView beta1

根据json布局控件,适合控制 简易图墙 布局,支持控件嵌套,暂时支持内外边距,tro(toTheRightOf ,位于控件右边),tbo(toTheBottomOf,位于控件下面),背景颜色,图片,点击等,w指定占父布局宽度的比例,h指定自身高度与自身宽度的比例,id为控件设置id,tro和tbo后的数值为id,表明在对应控件右边或下边。具体支持属性如下。public class Simpl

2016-10-08 17:57:58 848

原创 数字滚动

public class MoneyCountView extends View { private String TAG = MoneyCountView.class.getSimpleName(); public MoneyCountView(Context context) { super(context); init(null);

2016-09-28 23:43:27 507

仿qq表情输入控件

详见博客 http://blog.csdn.net/qingchunweiliang

2014-08-19

AS_SSD_Benchmark

AS_SSD_Benchmark 硬盘测试工具

2013-05-17

终级网络搜索器

终级网络搜索器 所搜资源,迅雷下载

2013-01-31

空空如也

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

TA关注的人

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