- 博客(33)
- 收藏
- 关注
原创 探究字节码文件结构
前言Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。储存字节码的文件再交由运行于不同平台上的JVM虚拟机去读取执行,从而实现一次编写,到处运行的目的。 如今,JVM也不再只支持Java,由此衍生出了许多基于JVM的编程
2022-04-16 22:46:51
243
原创 Android Launcher启动过程
开机启动概述:step 1: 上电开机长按power键后引导芯片开始从固化在ROM的预设代码处执行,加载引导程序(BootLoader)到RAM.step 2: BootLoader启动跳转到BootLoader的入口函数,开始执行BootLoader的代码.硬件初始化工作(硬件时钟、手机的主板等)完成初始化uart端口的操作arch_inittarget_initapps_initaboot_init跳转到内核入口函数start_kernel,启动内核.step 3: kerne
2022-04-16 22:45:01
5297
原创 glide4核心流程梳理
基本使用https://github.com/bumptech/glide1.简单使用:Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);2.进阶使用:RequestOptions sharedOptions = new RequestOptions().placeholder(placeholder).fitCenter();Glide.with(fragment).load(myUrl).apply(sharedOpti
2022-04-16 22:43:25
1518
原创 SparseArray与ArrayMap
SparseArraySparseArray核心代码两个构造函数默认数组容量10public SparseArray() { this(10);}public SparseArray(int initialCapacity) { if (initialCapacity == 0) { mKeys = EmptyArray.INT; mValues = EmptyArray.OBJECT; } else { mValues = A
2022-04-16 22:40:48
2038
原创 Android消息机制-Java层梳理
概述分析基于android12源码Android 系统两大核心机制 Binder机制和消息机制消息系统涉及的核心类Handler、Looper、Message、MessageQueueAndroid的系统组件启动、输入、UI刷新都需要通过消息机制来实现,某种意义上讲Android是由消息系统来驱动通过传送带机制来理解Message:消息结构体携带数据和属性 <传送带上的包裹>;MessageQueue:消息队列的主要功能向消息池投递消息(MessageQueue.enqueueM
2022-04-16 22:37:29
1302
原创 简单四步 编译Linux内核
1.需要先安装编译环境 进入 root 帐户: > su 输入密码 安装必要的工具: > apt-get install build-essential (安装 gcc, make 等) > apt-get install libncurses-dev (安装 make menuconfig 时必须的库文件)...
2012-12-14 21:28:47
167
原创 Android反编译与防止反编译
ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。 Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。 ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等。 Android Eclip...
2012-11-11 14:41:02
155
原创 Ubuntu 12.04 编译Android 4.0.3 的环境配置
from:http://www.linuxidc.com/Linux/2012-11/73918.htm在Ubuntu 12.04 下编译了Android 4.0.3发现了一大堆错误,网上找了一堆的更改源码啊,Android.mk的解决方法,虽然可以编译成功,但都有点坑爹的成分,为了不误人子弟就分享出来吧。根本原因是因为gcc的版本太高,ubuntu 12.04的系统带版本是4.6...
2012-11-11 14:03:07
204
原创 修改Android框架代码
1. 位置公共控件的代码在源码目录 Android/frameworks/base/core/java/android/ 中后台服务的代码在源码目录 android/frameworks/base/services/java/android/server 中 2. 修改修改其中代码并执行 mm 编译形如 :$ cd frameworks/base/serv...
2012-11-11 13:48:05
247
原创 Android 内存泄漏相关
一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的. 那么GC怎么能够确认某一个对象是不是已经被废弃了呢?Java采用了有向图的原理。Java将引用关系考虑为图的有向边,有向边从引用者指向引用对象。线程对象可以作为有向图的起...
2012-11-01 14:21:13
129
原创 Subversion Linux
http://blog.youkuaiyun.com/hemingwang0902/article/details/6904205从你的版本库中剔除文件有时你会希望某种类型的文件或者目录不会保护到你的源代码库中,所有使用Visual Studio开发的人都会马上知道我想说的:VS自动创建bin和obj子文件夹来存放编译中间文件和最终结果,并会创建*.suo文件用于存放解决方案的个人设置。如果能够将这些文件...
2012-09-26 13:51:08
132
原创 Linux 编程使用小总结
1、将企业私有根证书倒入到 ubuntu 中 sudo apt-get install libnss3-tools 导入:certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n <证书别名> -i <证书文件>2、文件解压 bzip2 -d gcc-4.1.0.tar.bz2 ...
2012-09-24 14:47:53
109
VLC 编译相关问题
在Mac OS X10.7.3 + Xcode4.3.2 环境下编译VLC for ios碰到的问题可解决办法。$ git clone git://git.videolan.org/MobileVLC.git$ cd MobileVLC$ ./buildMobileVLC.sh执行会失败,/usr/bin/xcodebuild error: can't exec '/Developer/u...
2012-04-29 00:46:08
605
原创 工厂模式
简单工厂(Simple Factory Pattern) 简单工厂模式,把对象(统一接口)的创建封装起来,而不去用了解对象所代表的真正的实现类及其初始化过程。我们只需要把参数传递给简单工厂,工厂就会根据你的需要返回相应的产品对象。示例代码如下: Java代码 Iproduct.java public interface IProduct { ...
2012-03-30 19:02:35
108
原创 深入理解Android消息处理系统——Looper、Handler、Thread
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和...
2012-02-29 21:59:51
101
原创 mac os 安装aircrack
下载代码:http://www.aircrack-ng.org 修改common.mak文件找到 CC=$(TOOL_PREFIX)gcc改成CC=$(TOOL_PREFIX)gcc-4.0找到CFLAS ?= -g -W ...在后面添加 -Wno-strict-aliasing -arch i386 -isysroot /Developer/SDKs/MacOSX10.7....
2012-02-04 19:12:37
654
原创 转 Mac OS X中配置Apache + PHP + MySQL
启动Apache有两种方法:打开“系统设置偏好(System Preferences)” -> “共享(Sharing)” -> “Web共享(Web Sharing)”打开“终端(terminal)”,然后(注意:sudo需要的密码就是系统的root帐号密码)运行“sudo apachectl start”,再输入帐号密码,这样Apache就运行了。运行“su...
2011-12-31 10:04:36
118
Mac AppStore 下载别人破解的安装包出现不能更新问题解决方法
Mac AppStore 下载别人破解的安装包后,会出现更新时提示有可用其他账户的更新而你不能正常更新的问题,解决办法如下:先在命令行执行sudo mdutil -a -i on 让Spotlight重新索引,如果出现server disabled,则执行sudo launchctl load -w com.apple.metadata.mds.plist后在执行上面命令就OK啦。...
2011-12-22 10:23:49
445
原创 Learn --Canvas API
var canvas = document.getElementById('trails');var context = canvas.getContext('2d'); // 画布的状态context.save(); 该方法在画之前在栈中保存绘画一个副本,用于后面进行绘画。context.restore(); 保存并结束当前绘画,弹出栈恢复成初始状态,该方法前必须...
2011-11-30 13:31:22
169
原创 转 使用HTML5开发Android本地应用(一)
使用HTML5开发Android本地应用(一) HTML5是现在最热门的技术之一,Android自带的WebKit浏览器对于HTML5有着不错的支持,而各种浏览器的最新版本都开始普遍的支持HTML5。使用HTML5开发手机应用的主要好处有两个:一个是应用可以跨平台,包括不同的手机平台和PC;二是可以从服务器下载应用的内容,但是不依赖于后台Server也可以运行,...
2011-11-23 21:02:47
159
原创 转 Xcode 快捷键翻译
关于xcode 可设偏好设置 command+,清空缓存 可设隐藏xcode command+h隐藏其它 command+option+h显示全部 可设退出xcode command+q文件相关:新建项目 command+shift+n新建文件 command+n新建空文件 command+control+n打开 command+o在新窗口中打开 command+option+o快速打开...
2011-11-22 22:26:37
148
原创 Android SDK源码提取Python脚本(4.0SDK源码下载地址)
Android 4.01_R1版SDK源码:http://dl.dbank.com/c0avqerdm7 #!/usr/bin/python # Copyright (C) 2009 Google Inc.## Licensed under the Apache License, Version 2.0 (the "License"); you may not...
2011-11-22 15:25:17
181
原创 在Mac OS X Lion 下编译Android 源码出现的一个问题
出错原因:./external/elfutils/config-compat-darwin.h:42: error: static declaration of ‘strnlen’ follows non-static declaration/usr/include/string.h:143: error: previous declaration of ‘strnlen’ was ...
2011-11-14 23:10:22
229
原创 转 Mac OS X 10.6 下 android 源码编译
http://blog.youkuaiyun.com/edai9508/article/details/6003754 1.需要至少8G大的大小写敏感分区 在Mac下编译android的源代码需要一个大小写敏感(Case Sensitive)的分区格式如果你原来的分区不是HFS一类大小写敏感的文件格式,那么最简单的办法就是新建一个这种分区格式的dmg出来,命令如下: sudo hdiutil ...
2011-11-12 23:11:06
148
原创 Mac 忘记root密码的解决方案
================================方法一=========================================首先,启动机器,启动时按住Apple和S键,以单用户模式(single user mode)进入系统。输入:mount -uw / 然后回车。输入: passwd 短用户名 (如果你知道的话)如果你不知道短用户名,可以输入: passwdroo...
2011-11-08 21:55:01
832
原创 Linux 忘记密码
Ubuntu忘记密码,忘记root密码?虽说是小概率事件,可依旧有发生的可能。因而,遇到忘记Ubuntu root密码时,我们改怎么办?下面一起来看看校长Ubuntu给出的解决方法。Ubuntu的root默认是禁止使用的,在安装的时候也没要求你设置root的密码,和红帽系统系列这里是不同的。要在Ubuntu下使用root,我们可以使用终端给root设置密码sudo passwd...
2011-11-08 16:19:30
120
原创 G7 刷MIUI 分区
分区:操作步骤:1.手机关机,按住音量下和电源键一起开机,按音量键选择recovery 后按电源键确认2.选择:advanced --> partition sd --> ext --> 1024 -->256。这样就会在SD卡创建一个1G大小的 ext3分区和一个256M的swap,然后回到上一界面用光感球选择 reboot system now ...
2011-11-06 11:00:50
781
原创 Android ROM的创建和烧录
Android ROM的创建和烧录2011年04月26日 星期二 19:38转自:http://www.xnadevelop.com/post/2011/03/22/Android-ROMe79a84e5889be5bbbae5928ce783a7e5bd95.aspxAndroid源码编译后,在out/target/product/generic下生成的三个镜像文 件:ram...
2011-11-03 15:51:48
222
原创 转 Linux 共享设置
http://www.hnsdfz.org/jc/linux/rh9_setting/s1-samba-configuring.htmlhttp://www.nenew.net/samba-ubuntu-share.html一、samba概念和功能Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写...
2011-11-02 17:23:40
108
原创 转android123 预防Android内存泄露
对于很多处理图形相关的Android开发者来说,大的Bitmap对象可能直接导致软件崩溃,Android平台如何防止内存泄露呢? 目前来说Android设备的RAM可能差距比较大,很多低端配置的256MB RAM或512MB RAM由于运行了太多的后台任务或HTC Sense这样的主题导致了处理一些高像素的图片,比如500w或800w像素的照片很容易崩溃。 1. 判断目标设备Dalvik ...
2011-11-01 15:08:50
137
原创 Android 源码下载
在linux下搭建android开发环境(android系统,不是普通android应用),首先要确保机器JDK版本为1.5,目前android不支持1.6版本JDK。1、由于ubuntu10.04系统自带的源里,找不到JDK1.5的安装包,所以,我们第一步是增加两个软件源。deb http://tw.archive.ubuntu.com/ubuntu/ jaunty main re...
2011-10-13 19:27:56
112
原创 使用Eclipse开发Android源码
1、Android的文件系统结构是怎样的,我们安装的程序放在那里?编译Android源码之后,在out/target/product/generic一些文件:ramdisk.img、system.img、userdata.img、 system、 data、root其中, system.img是由 system打包压缩得到的, userdata.img是由 data打包压缩得到的。...
2011-10-13 19:26:06
180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人