- 博客(45)
- 收藏
- 关注
原创 设计模式之建造者模式(Builder)以及构建器
定义 复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 用户不知道内部的具体构建细节 为何使用 构建复杂对象的过程和部件解耦 使用 建立一个产品类 建立一个建造者接口,里面是组件各个部件的方法 实现具体的建造方案即面向接口编程 指挥者选择建造者,并建造产品 import java.util.ArrayList; import java.util.Arrays; /** * @
2016-01-21 18:33:51
617
原创 String测试
public class TestString { public static void main(String[] arg){ String str1=new StringBuilder("计算机").append("软件").toString(); System.out.println(str1.intern()==str1); String
2016-01-14 20:09:48
651
原创 java初始化测试
public class TestClassInitial { public static void main(String[] args){ Beetle b=new Beetle(); } }class Insect{ private int i=9; protected int j; Insect(){ System.ou
2016-01-14 20:06:23
665
原创 Java虚拟机-相关参数
堆:-Xms:下界 -Xmx : 上界 -XX: 上下界相等于多少 -XX:+HeapDumpOnOutOfMemoryError 异常时候Dump出来相关信息栈-Xss:方法区(永久代,常量池)-XX: PermSize -XX: MaxPermSize
2016-01-14 20:04:33
433
原创 Java虚拟机-对象的创建,对象头
创建 new 检查new指令的参数,是否能在常量池中定位到一个类的引用符号 检查该类是否被加载、解析和初始化。 没有则执行相应的过程 分配内存 存在2中情况。取决于java内存堆是否规则 a。指针碰撞 连续的只要移动指针即可 Serial、ParNew Compact等带有压缩整理的 使用此方法 b。空闲列表 ; CMS 基于Mark-Sweep算法的 收集器的时候。 考
2016-01-14 19:44:03
725
原创 Java虚拟机-内存区域,堆,栈
运行数据区 方法区 非堆 类似永久代,但没有常量池 类信息 常量 静态变量 虚拟机栈 线程私有,生命周期和线程一致 本地变量 操作数 动态链接 方法出口 return.. 本地方法栈 naive相关方法 堆 新生代 Eden From Survivor To Survivor 老年代 程序计数器 指向下一个内存地址
2016-01-14 19:28:24
463
原创 Java继承与初始化
code public class TestClassInitial { public static void main(String[] args){ Beetle b=new Beetle(); } }class Insect{ private int i=9; protected int j; Insect(){ Syst
2016-01-14 16:37:43
381
原创 Java关键字-final
修饰类: 该类不可继承 没有子类 修饰数据 常量 不能被改变 static和final共同修饰表示其占据一段不能改变的存储空间 修饰参数 不能改变 参数引用的对象不能改变 方法 方法锁定 不会被覆盖
2016-01-14 16:05:49
411
原创 Soot学习笔记3.使用soot解析java文件
代码import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List;import android.content.pm.PackageManager; import soot.Scene; import soot
2016-01-06 15:57:40
4700
原创 soot学习笔记-2.使用soot解析Android apk.
代码:sootMain.java文件package com.sun.soot.example;import java.util.Collections;import soot.PackManager; import soot.Scene; import soot.Transform; import soot.options.Options;public class sootMain { pr
2015-12-30 22:27:49
3445
原创 LedPedometer-3.注册界面和Android随机生成图片验证码
注册界面类似于微信上必须全部输入内容后按钮才能点击 设置4个boolean值 给EditText添加文本内容改变listener 自动生成验证码转载链接:http://blog.csdn.net/onlyonecoder/article/details/8231373public class VertifiedCodeUtils { private static final char[]
2015-12-30 22:22:25
522
原创 LedPedometer-2.登陆界面
登陆界面如下:分析 上面一个imageView 中间2个EditText 使用了selector 改变了选中的状态 下面一个button按钮 下方一个相对布局 代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/
2015-12-30 22:15:55
385
原创 LedPedometer(运动计步器)开发笔记-1.升级app功能
本文章,用于自己做笔记使用简介 主要功能,采集,处理,展示数据,向后端推送数据,同步数据。 升级app功能1.查看服务器上是否有版本更新1.获取自身版本号private String getVersionName() { // TODO Auto-generated method stub try { PackageManager pm = g
2015-12-30 22:09:58
577
原创 Android-Selector实现EditText点击转变风格
布局文件view 只要注意其中的android:background就可以了<EditText android:id="@+id/et_login_phone" style="?android:attr/textViewStyle" android:layout_width="match_parent" android:layout_
2015-12-28 22:30:01
2383
原创 Android动画(4) 矢量动画SVG
简介 Scalable Vector Graphics 用于网络的基于矢量的图形 放大,或改变尺寸的情况下质量不会有损失 XML定义 Path M=moveto(M,X,Y) L = lineto(L X,Y) H = horizontal lineto(H X) 画直线 V = vertical lineto(V Y) 画垂线 C = curveto(C X1,X2,Y2,ENDX,ENDY):
2015-12-23 23:03:59
568
原创 Android动画(3)--属性动画
简介 3.0后 AnimationSet, ObjectAnimator 类 ObjectAnimator类动画时直接改变其相关属性 View改变,响应点击的位置一样改变 例子ObjectAnimator animator = ObjectAnimator.ofFloat( view, //目标view "translationX", //属性 300) //属性值animator.setD
2015-12-22 22:56:17
406
原创 Android动画(2)视图动画
简介 3.0之前 透明,旋转,位移,缩放4种 不具备交互性 响应的位置还仍然在动画前的位置。 可在java实现,可在xml中实现 java中//透明度动画 public void alpha(View view){ AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f); aa.setDuration(2000)
2015-12-22 22:34:53
425
原创 Android动画(1)--帧动画
像电影一样一帧一帧的放映res—drawable下定义文件 example.xml<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item
2015-12-22 22:20:02
355
原创 Android测试
冒烟测试:adb shell monkey -p <程序的包名> -v <事件的数量>Android下单元测试在AndroidManifest.xml文件中配置在manifest节点下: <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="co
2015-12-17 22:47:04
328
原创 Android 系统环境-常用adb命令操作
adb devices 列出所有设备 adb start-server 开启adb服务 adb kill-server 关闭adb服务 adb logcat 查看Log adb shell 挂载到Linux的空间 adb install <应用程序(加扩展名)> 安装应用程序 adb -s<模拟器> install <应用程序> 安装到指定模拟器 adb uninstall 程序包名 adb pul
2015-12-17 22:35:53
323
原创 Android程序打包安装过程
生成apk文件 生成。dex文件 资源索引表生成resources.arsc 准备未编译的文件。 清单文件AndroidMenifest.xml文件转换为二进制 使用debug.keystore对整个应用程序进行打包签名 加载apk文件到模拟器中 把apk文件加载到/data/local/tmp/xxx.apk 安装应用程序 把/data/local/tmp/xxx.apk文件,剪切到data/ap
2015-12-17 22:26:29
468
原创 输入流返回字符串
public class StreamTools { /** * @param is 输入流 * @return String 返回的字符串 * @throws IOException */ public static String readFromStream(InputStream is) throws IOException{
2015-12-16 15:35:23
397
原创 MD5加密方法
得到字节 每个字节与11111111与操作得到int值 转换成16进制 如果长度小于2 后面加0 组合起来返回 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class MD5Utils { public static String md5Password(St
2015-12-16 15:31:39
279
原创 Android-JNI(5)-C语言调用Java函数
java定义方法和native方法package com.example.ndkcallback;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;public class DataProvider { //C调用java空方法 public void helloFr
2015-12-16 15:00:27
635
原创 Android-JNI(4)-简单函数的实现
声明函数public class DataProvider { /** * 计算x和y的加法 apktools * 315 * @param x * @param y * @return */ public native int add(int x ,int y); // char String short
2015-12-16 13:23:49
450
原创 Android JNI(3) --在C代码中使用logcat
在Android.mk文件增加LOCAL_LDLIBS += -llogC代码中增加#include <android/log.h> #define LOG_TAG "System.out" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) #define LOGI(...) __androi
2015-12-16 13:14:15
356
原创 Android-JNI(2)-NDK环境搭建和简单案例
1.下载NDK2.解压到相应目录3.新建项目并建立jni文件4.配置NDK-build相关环境(由于目前版本ndk已经集成了NDK-build,因此不需要再linux模拟环境下运行) 1 2 3 4 5 完成hello world 程序 1.定义函数 public native String helloWorldFromC();2.jni下建立hello.c 【要实现c代码所在的文件】#inclu
2015-12-15 22:54:53
566
原创 Java 关键字-violate
简介 一个变量被此修饰则表明是对所有线程可见的,满足一致性 即各个线程的工作内存能立即发现该变量的改变并保证一致性。 防止指令重排序。 细节一个变量被violate修饰,则被虚拟机解释转换成虚拟机识别的指令如下:lock addl $Oxo,(%esp)多一个lock 后面是空指令 lock和nop不能同时执行 lock作用 使CPU的Cache立即写入内存,该写入动作会使其他CPU的Cach
2015-12-14 22:23:25
2648
原创 Android-JNI(1)-简介
什么是JNI JNI-java native interface andorid java层和c层的中间件 能使C调用java代码, java代码调用C代码 为什么学用JNI JNI扩展了java 虚拟机的能力, 驱动开发 (wifi-hotspot) 2.3 无线热点共享 Native code效率高,数学运算,实时渲染的游戏上,音视 频处理 (极品飞车,opengl,ffmpeg) 复用
2015-12-14 22:02:54
352
原创 Android进程和线程 --消息队列模型--ThreadLocal (3)(2015-12-02 19:41)
ThreadLocal简介 线程内部数据存储类 不同的线程存储不同的数据副本时考虑用ThreadLocal 数据是以线程为作用域 应用场景 class下定义一个ThreadLocal对象mThreadLocal 该类中开多了多个线程t1,t2,t3 t1 调用mThreadLocal.set(xxx) t2set(yyy) t3set(zzz) get的时候 即mThreadLocal.ge
2015-12-03 22:56:00
553
原创 Android进程和线程 --消息队列模型--Looper (2)(2015-12-02 19:41)
简介Looper() 在(1)中已经有了基本的介绍 Looper类:public final class Looper { static final ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>(); private static Looper sMainLooper; final MessageQu
2015-12-03 22:40:29
444
原创 Android学习路线总结
学习android不少时间了,也看了不少书和博客以及教程,中间也经历了不少弯路。在此总结一下android的学习路线。
2015-12-02 22:15:32
605
原创 Android进程和线程 --消息队列模型 (Looper, MessageQueue, Handler) (1)
消息队列模型 Looper Handle MessageQueue
2015-12-02 19:41:50
474
原创 Android 进程和线程 --多进程
多进程默认情况下一个应用的所有组件都是运行在一个进程中的。 但在某些情况下为了提高性能,就会使用多进程。通过在AndroidManifest.xml每个足见下面设置android:process. 就可以指定每个组件所运行的进程。如下图。有两个Activity, ActivityOne和ActivityTwo 运行在不同的进程中。 在DDMS中可以看到,存在两个进程.one .two 前面是
2015-12-02 17:08:36
470
原创 在windows上使用Git命令总结
不多说,直接开动下载Git for windowshttp://msysgit.github.io/ download之后安装,安装过程一切默认选项,最后可能会出现提示说unable to create”Git Bash Here” shell extension,不要管他,直接略过,关闭,这个时候已经安装结尾了。使用Git ,将代码托管到GitHub上1.登陆gitHub主页,注册用户 2.新建
2015-11-16 23:26:52
1878
原创 基本排序算法(全)
7个基本排序算法:冒泡,选择,插入 快排,归并,堆 桶 已实际运行过冒泡:时间复杂度O(n^2) 选择:同上 插入:数据基本有序的情况下O(n)能达到桶排序速度, 平均和坏的时间复杂度为O(n^2)快排: 平均性能比较好的O(nlog2N) 归并: 需要额外的空间辅助 堆:3个部件: 建堆,排序,下滑桶:最快的,对某些特定问题,数据在一定范围内的。import java.util.Arrays;
2015-11-13 18:43:19
463
原创 Spring in action 学习(2)创建Bean
2种方式-BeanFactory XMLBeanFactory(newFileSystemResource..) -ApplicationContext ClassPathXmlApplicatioContext("foo.xml"); FileSystemXmlApplicationContext("c:/foo.xml"); 注入属性通过构造函数 -<constructo
2015-11-04 13:35:31
411
原创 Maven使用和配置
Maven简介 今天本来是想学学spring的,结果到官网上一看,最新的建立spring的方式要用的maven,麻烦啊,转而又去看了看maven的相关内容。 简单来说,Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。这个是百度百科的定义,大家看看就可以了~其实更深的知识点我也不是很清楚,这里只是记录一下我学习,使用的一个过程,以后可
2015-11-03 20:00:43
725
转载 java job 资源
java 堆内存设置 http://blog.csdn.net/sivyer123/article/details/17139443
2015-09-09 22:01:58
567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅