- 博客(98)
- 资源 (3)
- 收藏
- 关注
原创 Java SDK中的sort算法小议 - 03 双轴快排
Java SDK中的sort算法小议 - 03 双轴快排Java SDK中的sort算法小议 - 03 双轴快排双轴快排 - `DualQuickSort`双轴快排对外入口 - `~DualPivotQuicksort.sort(int[] a, int left, int right, int[] work, int workBase, int workLen)`EJ双轴快排函数 - `-Dua...
2019-12-15 21:35:38
364
1
原创 Java SDK中的排序算法小议 - 02 单轴快排
Java SDK中的sort算法小议 - 02 单轴快排单轴快排 - `quick sort`调用流程代码实现CDIJK小结参考资料在前边的文章里,我们分析了最简单的merge sort。这篇文章我们继续来看看针对primitive类型排序的quick sort(即快排)是如何实现的。虽然现行的JDK中采用的是优化过的DualQuickSort,但是相对复杂了很多。如果直接去看,会比较吃力,所...
2019-12-01 21:43:55
380
1
原创 Java SDK中的排序算法小议 - 01 开篇
Java SDK中的sort算法小议两种常见的sort了解一下调用流程 - 从对外接口到真正实现为什么不都使用`quick sort`呢?具体是怎么实现的`Arrays.mergeSort`Summary参考的资料在学习数据结构和算法的时候,很多书籍或资料会将每个知识点分开去讲,这种方法可以帮助我们循序渐进地理解对应的知识点。在排序算法里边,书本上常见的会有冒泡排序 (bubble sor...
2019-11-25 22:02:40
474
原创 提升团队开发效率 - Nexus Repository
关于提升团队开发效率有很多可以讲,这里讨论一个比较简单易行并且“效果明显”的方法。在有些公司,如果对访问外网做了限制的话,可能需要走统一的代理才能访问外网。并且管理更加严格的可能还会对访问的外部资源签发自签名的证书,这样会导致几个问题每个人需要在工作电脑上配置代理不同的软件/平台配置代理的方式并不统一访问速度较慢可能需要把自签名的证书import到对应的trust store中,并且可...
2019-11-19 07:47:40
1168
原创 Certificate Pinning是如何工作的?
Certificate Pinning是什么,有什么用?Certificate Pinning,或者有叫作SSL Pinning/TLS Pinning的,都是指的同一个东西,中文翻译成证书锁定,最大的作用就是用来抵御针对CA的攻击。在实际当中,它一般被用来阻止man-in-the-middle(中间人攻击)。说起中间人攻击,可能不是那么直观,但是这一类工具我们可能经常会用到,如Mac平台的C...
2019-11-13 21:13:15
4615
2
原创 flutter note
flutter noteproject typescommonly used commandsflutter for web (in progress)flutter for desktopstudy resourcesproject typesapplicationa whole new applicationpluginexposing an android or ios api ...
2019-01-16 23:31:46
353
原创 Install & Config Gitea
Just some memo on how I install and config Gitea (a git server) on a virtual host.InstallDownload Gitea binary from official download page first.$ wget https://dl.gitea.io/gitea/1.6.0/gitea-1.6.0-l...
2018-12-01 23:38:05
309
原创 Gradle笔记
Gradle使用相关的问题都记录于此。设置JVM程序参数如果需要配置通过run任务执行的Java程序的参数,则可以使用Application插件的applicationDefaultJvmArgs属性进行参数设置。比如比较常见的设置代理服务器(如果你在公司内网),可以进行如下配置applicationDefaultJvmArgs = [ "-Dhttp.proxy...
2018-08-30 22:53:01
315
原创 Android Framework与AOSP源码对应关系
这里边记录一下两者的对应关系,所谓Framework即你开发App时依赖的android.jar文件中的类。这篇文章是基于7.1(25)的。package androidpackage assetspackage com.android.internal.utilpackage dalvikpackage javapackage javaxpackage junitpackage org
2017-10-18 15:33:52
1936
原创 IoT开发板Joule的一些笔记
有幸拿到一块Intel Joule 570x开发板,Intel对其的定位是IoT。对其进行了一些简单的研究,这里记录下来,便于以后查看。关于配件先放一张开发板的原图,该图来自于官方网站。 供电有两种:Type-C接口,与DC接口。 Type-C接口一般可以使用电脑的USB口或者电源适配器,但是有可能在某些情况下功率不够,所以推荐使用DC接口。 DC接口的要求是12V,3A(至少3A)的电源适配
2017-06-25 23:52:55
2728
原创 QT应用在Windows下部署发布
刚接触QT,对于其在Windows下部署一头雾水。网上相应的资料很多都是手工程度比较高的,在这里我们可以使用QT自带的发布工具 - windeployqt.exe。部署发布 - 解决依赖该文件在QT的安装目录下,我Windows平台使用的mingw版本(5.8),其路径为D:\Qt\Qt5.8.0\5.8\mingw53_32\bin\windeployqt.exe使用Release模式编译程序,然
2017-04-29 22:55:59
6128
转载 Qt在Mac OS X下的编程环境搭建
原地址:http://blog.csdn.net/libaineu2004/article/details/46234079在Mac OS X下使用Qt开发,需要配置Qt库和编译器。编译器只能使用苹果公司自主研发的Clang。1、分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了。https://develope
2017-04-29 11:16:51
1865
2
原创 Android Wear书签
Some notes on Android Wear development. TO BE COMPLETED…NotesApp类型Wear特有风格的Notification 可以使用专有的Action.WearableExtender为Notification增加Inline Action,具体可以参考Add Wearable Specific-features to a Notificat
2017-04-23 22:16:47
1491
原创 Android TV书签
Just some bookmarks and notes.NotesLeanback Launcher与手机/平板的Launcher不同,Leanback Launcher不支持"android.intent.category.LAUNCHER",如果要想显示自己的图标,需要添加<category android:name="android.intent.category.LEANBACK_LAU
2017-04-22 09:39:31
617
原创 NodeJS笔记
NodeJS是什么,引用一下官方的定义 Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ pac
2017-04-18 11:32:29
603
原创 Android源代码编译笔记(支持5.x及以上版本) - Mac篇
前边写过aosp在Linux上(Ubuntu)的编译文章,因为是在虚拟机里边,所以在方便的同时,效率也会有所折扣(调试编译运行速度等)。所以在Mac上试验了一次,发现方便很多。特此记录下来。大体流程还是与Android源代码编译笔记(支持5.x及以上版本) - Linux篇一致的,细节地方有所不同。安装软件包JDK这部分的要求对于各个平台是一致的,具体参见安装JDKCommand Line Tool
2017-03-19 13:32:45
547
转载 curl网站开发指南
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面举例讲解如何将它用于网站开发。一、查看网页源码直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短): $ curl www.sina.com
2017-03-03 10:59:21
643
原创 FindBugs日记
FindBugs是Java的一个静态代码(扫描bytecode)扫描器,其内置了很多的detector,可以扫描出来很多代码中潜在存在的问题。目前最新版本是3.0.1插件基于你项目的不同,可以使用不同平台IDE的插件来使用FindBugs,常见的有IDEA/Android Studio, Static Code Analysis using FindBugs (Android Studio)Ma
2017-02-23 18:26:10
508
原创 Nexus Player刷机日记
RT刷机步骤正常开机后,连接USB调试模式,然后通过命令进入bootloader模式 $ adb reboot bootloader查看”LOCK STATE”,如果为”locked”,那么通过命令unlock $ fastboot oem unlock执行刷机命令如果是官方下载的factory image,那么执行flash-all.bat如果是自己编译的image,那么
2017-02-22 18:16:43
1663
原创 Jenkins笔记
Jenkins是和bamboo类似的Continuous Integration and Continuous Delivery工具,简称为CI工具。最显著的一个区别就是,前者是开源免费的。基本使用关闭与重启直接通过url来控制即可,即http://127.0.0.1:8080/exithttp://127.0.0.1:8080/restart这里有更详细的图文版: Jenkins的关闭、重启Jo
2017-02-16 22:20:44
1407
转载 How To Install Java with Apt-Get on Ubuntu 16.04
原文地址:https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04IntroductionJava and the JVM (Java's virtual machine) are widely used and required
2017-02-04 15:21:37
2438
原创 编译及调试OpenJDK 8
看了深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 之后决定自己编译一下OpenJDK,但是书中介绍的关于编译和调试部分已经过时了。所以根据搜索的资料,自己编译调试了一下。IDE:Netbeans 8.2(最新版本即可) 操作系统:Ubuntu 14.04 源代码:OpenJDK 8编译OpenJDK 8下载源代码我是直接下载打包好的源代码(使用hg下载还需要再安装hg,这个东西相对
2017-02-01 14:59:53
7865
4
原创 Ubuntu下安装多个Java及切换
有时为了需要,会在系统中安装多个Java。网上关于这个问题的解决都是同一种思路,即利用sudo update-alternatives进行配置。我这里也是使用这种方法,只是编写了一个脚本,使得操作起来方便一些。多个Java的安装我是在Oracle上下载的压缩包进行解压的。解压完成之后,我们需要将其配置到系统当中,如下install_java.sh#!/bin/bashif [ $# -eq 0 ]
2017-01-30 17:27:00
3406
原创 VirtualBox常见问题记录与解决
VirtualBox是另外一款游戏的虚拟机软件。在某些情况下,我们可能只能使用这一款虚拟机软件。在这里记录一下VirtualBox的基本使用与优化,避免大家遇到同样的情况走弯路。安装Guest AdditionsGuest Additions包括基本的音频、视频与其它的驱动。 启动Guest系统后,选择”Devices->Insert Guest Additions CD image…”按照提示进
2017-01-22 14:39:22
2810
原创 小米手机刷机&ROOT原理
刷机&ROOT涉及到的工具有:原版线刷包 (fastboot包)SuperSUTWRP(一个三方的Recovery Image, 注意选对型号)Android Image KitchenXiaoMiFlash(其实是adb&fastboot的一个GUI外挂)MiFlash Unlock(小米手机bootloader解锁工具) 其实就是标准的fastboot oem lock &
2017-01-02 22:53:56
3037
1
原创 AOSP编译问题记录
只是日常遇到的问题的一些总结。如何编译单独的一个项目这个需求也经常会碰到,就像在从代码了解AOSP所了解到的,整个AOSP项目有500+个git子项目组成。如果我们想编译其中某个单独的项目,如何操作呢? TO BE ADDED参考从代码了解AOSP
2016-11-01 22:37:57
1000
原创 Git Memo
Git使用相关的命令以及概念的理解记录在这里边。常用命令克隆远程repo$ git clone [url]查看分支# 查看所有本地分支$ git branch# 查看所有远程分支$ git branch -r# 查看所有分支(本地+远程)$ git branch -a新建分支# 基于base_branch创建一个新分支new_branch,并切换过去$ git checkout -b [ne
2016-10-30 11:54:33
779
翻译 Android接口与架构
翻译自Android Interfaces and Architecture。Android提供给你实现自己的的设备规格与驱动的自由。硬件抽象层(HAL)提供了一个标准的方法用于连接(hook,钩子?)Android平台各层与你的硬件。Android操作系统同时也是开源的,所以你可以贡献你自己的接口与改进。为了确保设备保持一个高水准的质量并且提供一致的用户体验,每款设备必须通过兼容性测试(CTS)
2016-10-16 22:18:49
597
原创 AOSP中make clean与make clobber的区别
关于两者的区别,网上常见的一种解释是make clobber比make clean的清除更加严格,但是具体严格在哪里呢?并没有说明。
2016-09-20 11:37:17
12505
1
原创 AOSP分支切换
有时,我们需要在不同的AOSP的分支之前切换。在Android官网上Google并没有关于不同分支之前如何切换的说明,那么最笨的方法是使用另外一台虚拟机(我习惯使用虚拟机)再同步一遍代码,但是这样耗时耗力。经过前边 从代码了解AOSP 的学习,我们知道整个AOSP的代码的分支(revision)与远程地址信息都在.repo/manifests/default.xml文件中指定,所以初步的想法是可以将
2016-09-02 17:23:27
9039
原创 编译HiKey内核
在编译并运行AOSP,如果细心一些,你会发现,整个Android系统的内核,即Linux Kernel是Google预先编译好的(pre-built)。比如我刷好HiKey之后,关于里边的Kernel version是这样的: 首先,时间和我编译整个AOSP的时间不符,其次标识里边也没有我本机的信息。对比一下,我们看Build Number 可以发现,这里边明显有本机的标识。这里,我们可以自己编
2016-08-21 20:54:22
3384
2
原创 从代码了解AOSP
AOSP是什么?全称是Android Open Source Project,它是整个Android源码的开源项目。 官方地址是:https://android.googlesource.com如果你下载过源代码,那么对下面的这个指令不会陌生$ repo init -u https://android.googlesource.com/platform/manifest这是初始化AOSP的分支,默
2016-08-20 00:40:57
14830
原创 通过阅读刷机脚本flash-all.sh来学习shell脚本
关于shell脚本的文章,教程很多。但是一般属于工具书类型的,遇到不清楚的再去查。这里通过阅读Android的刷机脚本flash-all.sh来学习实际当中的shell是怎么写的。flash-all.sh脚本我选择的是HiKey版本的刷机文件,在Master分支的device/linaro/hikey/installer目录下可以找到。原始文件只有72行,所以这里加上我的注释都贴出来了#!/bin/
2016-08-18 11:47:41
4076
1
原创 Android内存泄漏分析笔记
关于Android内存泄漏相关的文章非常多,这个主题已经快要被写烂了。但是我还是要在记录一些自己分析过程中的笔记,和别的文章的侧重点不一样。我不会写怎么做,因为关于操作步骤和工具的使用已经有现成的文章,而且也写的很好。在这里更多的是”为什么这么做”的一些想法。
2016-08-17 18:32:42
415
原创 使用HiKey进行开发
Android官方目前支持的有一款开发板,名为HiKey,我们可以通过研究它对AOSP有更深的理解。 官方购买链接是一个国外网站,购买起来不方便。其实这块板子是中国的一个公司生产(我和这家公司并无利益关系,所以这里也不贴具体信息了)的,我买了一块用来进行AOSP的研究。HiKey开发板HiKey是符合Linaro LCG组织的96Boards设计标准的开发板。而96Boards是基于ARM架构
2016-08-16 16:24:40
8779
翻译 使用Jack编译
翻译自 Compiling with JackJack工具链Jack是一个Android工具链,用于将Java源码编译成Android dex字节码。它替换了之前的Android工具链,即由javac, ProGrard, jarjar和dx多个工具组成的集合。Jack工具链带来了以下优势:完全开源 AOSP中可以找到;欢迎合作伙伴贡献。加快编译速度 Jack对降低编译时间有具体的支持:pr
2016-08-15 19:17:13
10543
原创 Android源代码(AOSP)调试 - Java部分
经过前面漫长的环境搭建、源码同步、编译之后,终于可以真正做点有意思的事情了 — AOSP源码调试。AOSP源码导入IDE内存优化因为源码非常多,所以导入时IDEA/AS会需要大量内存。所以我们需要编辑IDE的VM选项。配置文件为IDEA的是IDEA_HOME/bin/idea.vmoptionsAS的是AS_HOME/bin/studio.vmoptions 注意,AS有一个64位版本的配置文
2016-08-09 15:57:54
7578
1
卸载blackberry messenger的命令
2010-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人