- 博客(20)
- 资源 (11)
- 收藏
- 关注
原创 谈谈Java怎么用一行代码初始化List
怎么写ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}}; 什么意思new ArrayList<String>(){}创建一个匿名内部类。{add("s
2018-08-29 11:30:49 740
原创 在Mac平台使用Docker搭建AOSP(Android源代码)编译环境
本地环境:macOS 10.12.5工作目录:~/android-docker/一.准备大小写敏感的磁盘映像创建磁盘映像 首先,使用下面命令查看磁盘信息,diskutil info /如果磁盘信息的的 File System Personality 为 Case-sensitive Journaled HFS+,则说明当前文件系统是区分大小写的,不需要创建磁盘映像。否则执行命令:hdiutil
2017-05-26 17:47:05 3914 1
原创 《程序员的自我修养——链接、装在与库》第三章《目标文件里有什么》读书笔记
一. 目标文件的概念编译器编译源代码后生成的文件叫做目标文件。从结构上讲,它是编译后的可执行文件格式,只是还没有经过链接过程。二. 目标文件的格式PC平台上主流的可执行文件格式(Executable)主要有Windows下的PE(Portable Executable)Linux的ELF(Executable) 它们都是COFF(Common file format)格式的变种。EL
2017-01-12 19:53:24 735
原创 Java内部类学习小结
分类静态内部类(类内部类)成员内部类(实例内部类)方法内部类匿名内部类静态内部类不能引用外部类的实例变量和实例方法实例创建方式public class OutStaticInner { Inner inner = new Inner(); static class Inner { OutStaticInner outStaticInner = new O
2016-12-23 11:47:11 430
原创 const修饰符和指针
2. char** const cpp1 = NULL;char** const cpp1 = NULL;cpp1 -> char* cp1;cp1 -> char c1;cpp1是一个常量指针,所以cpp1需要在定义的时候初始化,它指向一个char*型的指针cp1。2. char* const* cpp2;char* const* cpp2;cpp2 -> char* const cp2;
2016-12-06 12:34:39 368
原创 Android 用 adb forword + Tcpdump + Wireshark 实时抓包的方法
运行环境:手机: 安装netcat(敲一下 nc 或者 busybox nc 检测一下)安装tcpdump已经root电脑: 安装wireshark安装netcat使用方法:手机: tcpdump -i any -p -s 0 -w - | busybox nc -l -p 11234电脑:adb forward tcp:11234 tcp:11234nc 127.0.0.
2016-11-22 19:04:26 2835
原创 Mac OS X使用sshfs挂载Linux远程分区
确保远程linux服务器的ssh服务启用了sshfs协议,可通过查看 /etc/ssh/sshd_config 中是否有 Subsystem sftp/usr/lib/openssh/sftp-server 这一行来确认。mac上安装 osxfuse,下载地址 https://osxfuse.github.io/ ,貌似brew也能装,大家可以试一下。mac上安装sshfs,brew insta
2016-11-10 16:21:00 3152
原创 Android平台png转jpg的实现
前几天想在android实现一个png转jpg的功能,就在网上搜了一下,好几个地方都出现了如下这段让人无力吐槽的代码byte[] b=null;File PNG = null; BufferedOutputStream stream = null; try { PNG = new File(outputFile); F
2016-10-09 15:25:20 7545
原创 Java中怎么判断一个io流是否已经关闭?
我想测试一下anroid是否支持自动关闭流的功能,怎奈jdk并没有提供判断流是否关闭的接口,只能剑走偏锋,想了一个矬逼的办法,抓异常,具体代码如下。 FileInputStream fi2 = null; try (FileInputStream fi = new FileInputStream(pngFilePath)) { fi2 = fi;
2016-10-08 19:17:03 23978 3
转载 Mac OSX 中java7 java8环境的配置
这里说的配置方法只适合于用官方安装文件安装的 jdk。1. 查看本机已安装的java版本运行 /usr/libexec/java_home -V在我的机器上显示结果如下:Matching Java Virtual Machines (2): 1.8.0_66, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_6
2015-12-29 18:55:15 4720
原创 <Object> 和 <?>
闲言少叙,直接上代码。class Holder<T> { T value; public Holder(T val) { this.value = val; } public T get() { return this.value; }}public class Main { public static void main
2015-12-18 10:17:57 1182
原创 void 和 Void
还是全用代码说话比较直观一点。 先来看看Void类的实现:/** * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * * @autho
2015-12-09 17:16:08 752
原创 CheckStyle 使用简介
CheckStyle 使用简介CheckStyle简介CheckStyle 是一款Java代码静态检查的工具。想了解更多的同学可以去 http://checkstyle.sourceforge.net/ 深入学习。在maven中使用CheckStyle首先建立一个maven项目checkstyle-test,pom.xml配置如下: <project xmlns="http://maven.apa
2015-05-27 19:16:23 703
原创 局部变量、全局变量、堆、堆栈、静态和全局
--------------------------------------------------------------- 一般全局变量存放在数据区,局部变量存放在栈区, 动态变量存放在堆区,函数代码放在代码区。 --------------------------------------------------------------- 栈区是普通的栈数据结构,遵循LIFO后进先出的规则,局
2009-10-24 11:03:00 921
原创 MTK菜单的添加方法
折腾了一下午,终于把菜单给添加上了,总结一下。 在../plutommi/mmi/Inc目录下GlobalMenuItems.h文件中enum GLOBALMENUITEMSID的最后增加菜单ID的声明:MY_MENU_ID 在plutommi/Customer/CustResource/PLUTO_MMI/Res_MMI目录下的Res_MyMenu.c增加如下函数加载menu
2009-10-23 18:40:00 809 1
转载 常见typedef 用法
http://www.mtkmtk.com/html/jscc/bcjq/2009/1013/4467.html 1.常规变量类型定义例如:typedef unsigned char uchar 描述:uchar等价于unsigned char类型定义 uchar c声明等于unsigned char c声明 2.数组类型定义例如: typedef int ar
2009-10-14 14:08:00 636
转载 MTK平台 MMI学习总结
http://www.igugou.cn/main/Article/2009/39.html 总体感受 MTK是一个自由度相当高的平台,整个MMI Framework只有history的操作才是必须的,其他方面,主要是display的机制,完全放开自由发挥。当然,MTK有个所谓的display manager来管理category screen, 当实际上,这个display manage
2009-10-14 10:17:00 1249
原创 二维数组和二级指针
一般说来 int a[10][10],a的类型不是int **, 而是int(*)[10], a[0]的类型为int *,当取某一个变量的时候,采用int a[x][y] 的形式。 而对於int**p 二级指针来说,它与a的类型截然不同,数组名a中的地址值==二维数组中一维子数组的地址==a[0][0]的地址,也就是说int(a)==int(a[0])==int(&a[0][0]),而p是指针的指
2009-10-14 09:51:00 644
转载 MTK GDI layer
在某些频繁更新的界面中,如果某些显示元素一直没有变化,我们就可以将这些元素提取出来画到一个模拟的屏幕中,而将一些需要更新的元素画到另外的模拟屏幕,而后将两个模拟屏幕合并到真正的屏幕上,这样我们就节省了不变元素的重画时间,从而减轻了系统负担及加速画面更新。我们把这样的模拟屏幕就叫层,也可以说层就是屏幕的缓冲空间。 例如,如果我们用动画做为背景,将其他的一些元素也画到这一层中,就会出现当动画
2009-09-19 14:17:00 2971 1
转载 MTK定时器消息机制分析
1. 数据结构 (1). stack_timer_struct typedef struct stack_timer_struct_t { module_type dest_mod_id; kal_timerid k
2009-09-07 22:40:00 946
经典JavaEE企业应用实战-带书签目录
2019-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人