数组指针和指针数组(讲解的很好) 1、数组指针(指向数组的指针)(1)数组在内存中的表示创建一个数组就是在内存里面开辟一块连续的空间,比如int a[4];就是在内存里面开辟了一个大小为4*sizeof(int)字节的内存空间。二维数组是特殊的一维数组。先来看一段代码:[cpp] view plain copy"font-size:16px;">void ma
指针数组和数组指针的区别 这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。in
手把手教你逆向分析 Android 程序 转载自:https://segmentfault.com/a/1190000005133219 作者真是高手很多人写文章,喜欢把什么行业现状啊,研究现状啊什么的写了一大通,感觉好像在写毕业论文似的,我这不废话,先直接上几个图,感受一下。第一张图是在把代码注入到地图里面,启动首页的时候弹出个浮窗,下载网络的图片,苍老师你们不会不认识吧?第二张图是微信运动步数作
APK自我保护 - DEX/APK/证书校验 转载自: http://gnaixx.cc/2016/04/19/android-protect-dex_apk_cert_check/0x00 DEX校验classes.dex 是 Android 虚拟机的可执行文件,我们所写的 java 代码其实都在这里面,所有很多对应用程序的篡改都是针对 classes.dex 文件的。可以找一个 APK 解压就可以看到 classes.de
Android中的ClassLoader与dex文件加密实现分析 Android中的ClassLoaderBaseDexClassLoaderDex类加载器的基类,包含Dex类加载器之间通用功能的实现。DexClassLoaderA class loader that loads classes from .jar and .apk files containing a classes.dex entry. This ca
代理 ACTIVITY 模式(资源加载的问题) 简单模式中,使用 ClassLoader 加载外部的 Dex 或 Apk 文件,可以加载一些本地 APP 不存在的类(或者更新本地已存在的类),从而执行一些新的代码逻辑,但是使用这种方法却不能直接启动插件里的 Activity 等组件,也没办法使用 res 资源,如果不解决这两个问题,则使用插件化的方式开发 Android 业务会非常繁琐。基本信息Author : KaedeI
Java ClassLoader基础及加载不同依赖 Jar 中的公共类 1. ClassLoader 的基础知识无论是 JVM 还是 Dalvik 都是通过 ClassLoader 去加载所需要的类,而 ClassLoader 加载类的方式常称为双亲委托,ClassLoader.java 具体代码如下:Java1234567891011121314151617protected Class> loadCl
android-plugmgr原理 android-plugmgr是一个Android插件加载框架,它最大的特点就是对插件不需要进行任何约束。关于这个类库的介绍见作者博客,市面上也有一些插件加载框架,但是感觉没有这个好。在这篇文章中,我们将不仅止于原理,对源代码的具体实现进行分析。文章中涉及的代码可从https://github.com/kissazi2/AndroidDemo/tree/master/PlugLoadDemo下载,
动态加载APK原理分享(dexmaker) 目录(?)[-]项目地址httpsgithubcomhoukxandroid-pluginmgr 欢迎star and fork一 综述二功能介绍ps第一个插件代码来自 httpsgithubcomviacheslavtitovNDKBegining作者是个老外不过也比较粗心要正常运行你需要在sd卡下创建目录FFMPEG第二个插件代码来自这篇博文httpblogcsdnnetcaihany
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟机规范中规
Android动态加载补充 加载SD卡中的SO库 Android中JNI的使用其实就包含了动态加载,APP运行时动态加载.so库并通过JNI调用其封装好的方法。后者一般是使用NDK工具从C/C++代码编译而成,运行在Native层,效率会比执行在虚拟机的Java代码高很多,所以Android中经常通过动态加载.so库来完成一些对性能比较有需求的工作(比如T9搜索、或者Bitmap的解码、图片高斯模糊处理等)。此外,由于.so库是由C++编译而来的
安卓App热补丁动态修复技术介绍 转自QQ 空间技术: https://zhuanlan.zhihu.com/p/203085481.背景当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装。有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。这时候就提出一个问题:有没有
热修复、热补丁与插件化 基础知识补充:为什么需要分包:Android2.3及以前版本用来执行dexopt(用于优化dex文件)的内存只分配了5M,一个dex文件最多只支持65536个方法其实android中的分包,除了用dex分包还可以用插件化,即将一些独立的功能做成一个单独的apk,当打开的时候使用DexClassLoader动态加载,然后使用反射机制来调用插件中的类和方法。这固然是一种解决问题的方案:
multidex分包续:将指定的类打包到主dex中 一、为什么有将指定的类放入主dex中的需求我们分包的时候会遇到一个问题,因为加载和初始化的问题,如果某个类不在主dex中,那么程序就会报错,Java.lang.NoClassDefFoundError例如:自定义主dex所包含类的过程中,有9个类必须在主dex中android/support/multidex/MultiDex.classandroid/support/multide
void与void*详解 void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ; 4. void不能代表一个真实的变量;void体现了
QQ音乐/酷狗音乐锁屏控制实现原理 http://www.zhihu.com/question/31992887我实现的效果混乱的锁屏控制android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记为deprecated, 被新的类MediaSession所替代. 我们的音乐App中
Git优秀文章 来源:http://blog.sevenche.com/2014/02/Git-cook-book/本文始于自己的Evernote,由于大部分原本是英文记录的,所以干脆全部用英文。Most of the content comes from my Evernote, therefore, this post will be updated once I have more note
引入的第三方库最低支持版本高于我的项目的最低支持版本 比如我的项目的最低支持版本为8(Android 2.2),而第三方库的最低支持版本为9(Android 2.3),所以抛出了这个异常。解决办法:在AndroidManifest.xml文件中 标签中添加<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas
如何发现优秀的开源项目? 转载自:http://blog.csdn.net/googdev/article/details/52060211之前发过一系列有关 GitHub 的文章,有同学问了,GitHub 我大概了解了,Git 也差不多会使用了,但是 还是搞不清 GitHub 如何帮助我的工作,怎么提升我的工作效率?问到点子上了,GitHub 其中一个最重要的作用就是发现全世界最优秀的开源项目
android studio在一个文件夹下创建多个module(libraray) 每次开发项目都会引入一些第三方支持库,而在android studio下它们都是作为module的形式存在一个项目中,太多的话难免看起来很乱,所以萌生了把他们放在同一个文件夹下的想法,也就是这样:步骤如下: 1.在工程根目录下新建extraModules文件夹 2.将这三个module拖进extraModules文件夹 3.在setting.gradle中将原有的:mo
环境配置之Android Studio开发NDK 转载请注明出处:http://blog.csdn.net/qiujuer/article/details/42040963NDK 开发哪家强?XX XX 找 Blue Fly.说到 NDK 开发,其实是为了有些时候为了项目需求需要调用底层的一些 C/C++ 的一些东西;另外就是为了效率更加高些。但是很多时候能不用就不用;这个是啥原因?个人感觉有些时候是觉得麻烦,首先
使用 gradle 编译多版本 android 应用 最近要做一个 android 产品的变种版本,需要编出不同版本,每个版本有不同的包名、图标等等,和一些特有的逻辑。很久之前做过类似的工作,当时没有 gradle, 用的方法是把公共代码抽成一个 library,不同版本建一个工程引用公共 libery。但是这种方法每个版本要建一个工程,工作量较大,并且会有一些重复代码,不好维护。现在的工程是用 gradle 构建的,网上查了一下应该
基于 Token 的身份验证 原文:http://ninghao.net/blog/2834最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,也更安全点,非常适合用在 Web 应用或者移动应用上。Token 的中文有人翻译成 “令牌”,我觉得挺好,意思就是,你拿着这个
使用github+Hexo人人都能拥有一个美美的博客 转载自:http://www.jianshu.com/p/863f3f2d1733 感谢作者分享我相信很多人都想拥有一个自己的博客,把自己的一些生活感想或者学习总结写到这上面分享给大家。首先我推荐一个网站简书,无论你是否是搞技术开发工作的或者其他文艺工作者,只要你想写文章,简书无疑是一个好的写文章的地方,如果是搞技术的小伙伴还有推荐的是博客园,CSDN博客等等但是如果你不满足那
Web 通信 之 长连接、长轮询(long polling) 转自: http://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.htmlWeb 通信 之 长连接、长轮询(long polling)基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。一、什么是
java.util.Queue用法 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。在java5中新增
国内 Top500Android 应用分析报告 背景笔者目前在开发的应用在线上有不少OOM的问题,经过一番优化后,OOM降了一个量级,但由于产品中Gif是一特色,内存占用优化空间比较有限,想要减少OOM最简单的办法可能就是开启largeHeap。Google官方是不推荐使用largeheap的,更大的内存意味着更长的垃圾回收时间,所以我就想看看国内的这些应用是否有打开largeheap。用AS的APK Analyzer看了下微信和QQ空
Android沉浸式状态栏完全解析 转载自 郭神记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的完全解析。其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的。因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚
Android编程之SparseArray<E>详解 转载自:http://blog.csdn.net/xyz_fly/article/details/7931943最近编程时,发现一个针对HashMap的一个提示:翻译过来就是:用SparseArray来代替会有更好性能。那我们就来看看源码中SparseArray到底做了哪些事情:一、构造从构造方法我们可以看出,它和一般的List一样,可以预先设置容器
android中如何实现离线缓存 离线缓存就是在网络畅通的情况下将从服务器收到的数据保存到本地,当网络断开之后直接读取本地文件中的数据。将网络数据保存到本地:你可以自己写一个保存数据成本地文件的方法,保存在android系统的任意目录(当然是有权限的才行),但是在这种情况下使用Context的openFileOutput方法最简便也最符合我们的场景,下面的 saveObject 方法演示了如何用openFileOu
Android 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo) 转载自: http://www.open-open.com/lib/view/open1378262024781.html众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下PackageManager packageManager = this.getPackageManager(); List packageInfoList = pac
Android使用网络服务发现 编写:naizhengtan - 原文:http://developer.android.com/training/connect-devices-wirelessly/nsd.html添加网络服务发现(Network Service Discovery)到我们的 app 中,可以使我们的用户辨识在局域网内支持我们的 app 所请求的服务的设备。这种技术在点对点应用中能够提供大量帮助,例如
git rebase 使用 git rebase 不会取回代码 要用git fetch先取回, git rebase 是合并代码。(1)首先用git fetch返回服务器上的代码(2)首先用git rebase origin/master 合并(3)如果发生冲突了会提示, 然后可以使用git diff查看冲突, 在手工改掉冲突, 在用git add ‘文件名’ 添加修改后文件,最后用git rebas
detached HEAD意义详解 概述:在使用git的过程中,我们常常会对其中的HEAD感到疑惑:HEAD是什么意思?表示当前分支吗?什么是处于游离态的commit点?等等,这些都和一个叫做detached head的状态有关,我们来看看它的真面目。 通常情况下,HEAD指向一个分支;同时,每一个分支对应一个特定的commit(确切的说,一个分支上可以有多个commit,但是只有一个顶层commit,
详解Git分支(Pro Git) Git 分支摘自 Pro git 中文版(开源中国)3.1 何谓分支3.2 分支的新建与合并3.3 分支的管理3.4 利用分支进行开发的工作流程3.5 远程分支3.6 分支的衍合3.7 小结几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目
我所记录的git命令(非常实用) 转自http://www.cnblogs.com/fanfan259/p/4810517.html阅读目录一、前言二、git branch 和 git checkout三、git clone 和 git remote四、git pull 和 git push五、git merge 和 git rebase六、git log七、git stas
Gradle打包APK的一些小技巧和productFlavor配置 本文转自: http://zheteng.me/android/2016/02/29/flavors-with-gradle/?utm_source=tuicool&utm_medium=referral在使用Gradle来打包Android应用之前,Android自动化打包通常会选择使用ant,ant是一种一步一步来执行任务的工具,通常打包一个apk要经过一个复杂的过程,ant工具通过一
在Android Studio中有六种依赖 Compile,Provided,APK,Test compile,Debug compile,Release compileCompilecompile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。ProvidedProvided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,
popupwindow全屏幕显示被状态栏挡住如何解决+Android获取状态栏高度 转载出处: http://blog.csdn.net/jackuhan/article/details/48369421这是我在开发app中的筛选需求,使用popupwindow显示筛选panel,在我的Android4.2系统中显示效果,popupwindow被状态栏statusBar挡住。需求中这个筛选的
android studio 测试两种测试用例的切换问题 ANDROID STUDIO 1.5使用JUNIT单元测试,以及“TEST RUNNING STARTEDTEST RUNNING FAILED: INSTRUMENTATION RUN FAILED DUE TO 'JAVA.LANG.RUNTIMEEXCEPTION' EMPTY TEST SUITE”2015 年 11 月 26 日 默默发表回复 331 浏览
Git 命令总结 注意不会命令可以使用 TortoiseGit 或者 SourceTree创建本地仓库 git init –bare shared.git (或者 git init)配置个人信息 git config user.name “wangli” git config user.email “user@qq.com” 或者 git config –global user.name “wangl
<meta-data>的使用 AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.need88.apptests"> <application android:allowBa
Android studio修改变更Eclipse快捷键 as的快捷键死活用不习惯,无奈浪费时间自己做了调整安装as后,第一次启动后如果我们修改了默认的快捷键,会发现C:\Users\Administrator\.AndroidStudio1.5\config\ 下生成了\keymaps\Eclipse copy.xml文件。放入我们之前版本整理过的Eclipse copy.xml文件<keymap version="1" name="Eclipse c
Windows环境下Android Studio v1.0安装教程 准备工具JDK安装包。要求:JDK 7以及以上版本。Android Studio安装文件。Windows:exe(包含SDK) (813 MB)exe(不包含SDK) (250 MB)zip (235 MB)Macdmg (234 MB)zip (233 MB)Linux:zip (233 MB)说明:32位系统和64位系统是同一个安装文件。
优化Android studio的编译速度 自从使用了Android studio,尼玛,版本更新帝啊,可能是我电脑太次,启动后,coding一顿一顿的,希望Google快点改善。开启gradle单独的守护进程:在下面的目录下面创建gradle.properties文件: /home//.gradle/ (Linux) /Users//.gradle/ (Mac) C:\Users\.gradle (Windows) 并在文件中增加
android使用获取所有应用的资源id和uri 摘要 android使用获取所有应用的资源id和uri转载地址: http://my.oschina.net/ososchina/blog/353692目录[-]一.获取资源的id二.获取资源的uri在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射反射方式获得,但Resources类中也自带了这种获
创建Fragment使用 构造函数 还是 newInstance() Creating a Fragment: constructor vs newInstance()from stack overflowand another chapter最近,我厌倦了在创造Fragments 把字符串参数传给Bundles的重要性。因此,我决定在构造函数中设置参数,并把这些参数放入Bundlepublic ImageRotatorFragm
Fragment的使用(附带动画) 应用场景:众所了解Android上的界面展示都是通过Activity实现的,但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了。为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。Fragment通常是嵌套在Activity中使用的。首先需要注意,F
android.support.v4.widget.DrawerLayout 抽屉效果导航菜单 抽屉效果导航菜单图示如图所示,抽屉效果的导航菜单不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面左上角的一个按钮点击,菜单就滑出来,而且感觉能放很多东西概况:实现上图所示的抽屉效果的导航菜单有以下两种方式 方式1.用SlidingDrawer: http://developer.android.com/reference/and
Spring笔记 msyql 完全清除表truncate t_user; 性能比较: JDBC > hibernate(反射太多了,影响性能)Spring 和 JDBC的使用 (相当于SqlHelper ,在没有使用hibernate的情况下)配置数据库连接池 (单例 ),由我们的Spring管理一个全局唯一的数据库连接池使用jdbcTemplate (和HibernateTemplate类似 )使用c3p
Jstl 总结 var flag = "${ ! empty userList }";var flag = "${ not empty userList }";var flag = "${ userList != null}";三者等价 都是true EL表达式${list[index]} <c:forEach items="sessionScope.list" var="l">然后在这里面进行获取${l.
Hibernate笔记 HibernateTemplate操作数据库实际开发仍然是第一种方便 需要在xml中配置 <bean id = "hibernateTemplate" class="org.springframework.orm.hibernateTemplate"> <property name="sessionFactoy" ref="sessionFactoy"></propert
Eclipse设置编码问题 一般Java文件编码格式是UTF-8的。以下以默认GBK改为UTF-8为例。 总方案:.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式。eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK 汉化版:eclipse->窗口->首选项->常规->工作空间->其它->UTF-8->确定 全部
HttpClient 登录爬取信息 爬取图片[1].[文件] SemeiziCrawler.java ~ 5KB 下载(576) 跳至 [1] [2] [3]?123456789101112131415161718192021222324252627282930313233
加速Android Studio/Gradle构建 androidandroid studiogradle已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。开启gradle单独的守护进程在下面的目录下面创建gradle.
使用jazzyViewPager 加载assets目录打造炫酷效果 MainActivitypackage com.need88.drawableround;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import android.app.Activity;import android.content.res.AssetManager;imp
Http请求工具类 httputil package com.snowfigure.kits.net;import java.io.BufferedReader; import java.io.IOException;import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter;import
Android从assets和raw中读取txt文件 方法一、将要读取的txt文件拷贝到Android工程目录下的assets文件夹下方法二、在res文件夹下新建raw文件夹,将txt拷贝到该目录下本方法是从assets中读取从assets中读取txt private void readFromAssets() { try { InputStream is = getAssets().open("qq.txt");
正则表达式口诀及教程(推荐) 正则其实也势利,削尖头来把钱揣; (指开始符号^和结尾符号$)特殊符号认不了,弄个倒杠来引路; (指\. \*等特殊符号)倒杠后面跟小w, 数字字母来表示; (\w跟数字字母;\d跟数字)倒杠后面跟小d, 只有数字来表示;倒杠后面跟小a, 报警符号嘀一声;倒杠后面跟小b, 单词分界或退格;倒杠后面跟小t, 制表符号很明了;倒杠后面跟小r, 回车符号知道了;倒杠后面跟小s, 空格符号很
火车头采集器 针对dedecms采集图片的问题步骤 1. 采集到的图片真正的路径是 (文件链接地址前缀+文件保存目录+下载的图片名) 2. 图片下载好的位置在 —-> (所有文件保存文件夹) 3. 然后先通过Ftp 上传图片到 (文件链接地址前缀+文件保存目录) 4. 发布内容即可
Jsoup中文API jsoup Cookbook(中文版)入门解析和遍历一个html文档输入解析一个html字符串解析一个body片断根据一个url加载Document对象根据一个文件加载Document对象数据抽取使用dom方法来遍历一个Document对象使用选择器语法来查找元素从元素集合抽取属性、文本和html内容URL处理程序示例:获取所有链接
零碎知识点(未分类) 1 当一个view(image/text view都可以)的android:clickable=”true”可以像button一样点击 然后背景颜色android:background=”@drawable/选择颜色的xml文件名”可设置点击、非点击两种状态颜色 这个背景状态改变,只有在clickable=true才有效2<Spinner android:id="@+id/id
ListView内 按钮的点击事件 注释写的很清楚,没啥好说的SimpleAdapter的使用public class MainActivity extends Activity { private ListView listView; List<Map<String,Object>> listItems ; private String [] names = new String[]{"wangli","xia
切换默认Activity和Fragment的动画 Activity中public void click(View view){ Intent intent = new Intent(); intent.setClass(this, TwoActivity.class); startActivity(intent); overridePendingTransition(R.anim.en
网页常用JavaScript代码 <script>// 弹出窗体 var url = "http://www.baidu.com"; win=window.showModalDialog(url,window,"dialogLeft:400;dialogTop:200;dialogWidth:560px;dialogHeight:380px;scroll:yes;menubar:no;toolbar:no;status:no
java robot机器人 package com.wl.mini.action;import java.awt.AWTException;import java.awt.Dimension;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.InputEvent;import j
Jsp自定义标签Demo 新版获取 session的方法是: HttpSession session = ((PageContext)this.getJspContext()).getSession();package com.wl.eshop.tags;import java.io.IOException; import java.io.Writer; import java.util.Date;import
jsp版文件上传 web.xml中 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://
自动构建java包 package test;import java.io.File;import java.io.FileOutputStream;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.dom4j.i
Android 阻止反编译和 如何反编译重写打包 防止反编译 2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。 2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。反编译 1.用apktool 把apk–> 资源包(java代码变成sm
Eclipse 常用快捷键 ctrl + shift + t 快速打开 xxx类 ,如查看有什么方言(mysql*dialog) 可以使用通配符 ctrl + shift +r 快速打开某个资源 如 *.jsp ctrl + t 打开本类中某一方法 ctrl + n 最常用 新建
Java小技巧 多文件上传多文件上传实际上也是 单文件上传的 循环(Struts2 获取多文件List 比较方便;使用 apache 组件应该也有获取多个文件的方法吧)多文件上传有 两种: 1.<input type="file" name="files" multipart /> 2.<input type="file" name="file" /> <input type="file" name="
我的java编程之易混易错 (1). java编程的日期,年月日,月竟然从0开始算起,年和日从1开始算 (2). mysql ResultSet rs rs.getInt(1);<==>rs.getInt(“id”); 下标从1开始;jdbc中select * from user where id=? ; ps.setString(1,12); 设置参数同样是从下标1开始的(3). 但是hibernate设置设置参数 lis
Android开发中的小技巧 Android eclipse 快捷键切换AndroidUI 视图 和xml 视图 alt + pageUp alt + pageDown切换 代码之间 打开的文件 ctrl+ pageUp ctrl+ pageDown
Cookie文件说明 客户端发送Cookie setHeader("Cookie",cookieStrings); Hm_lvt_8289194a911f5d8567a26db6a3d2e49d=1442461863,1442540685,1442548420,1442992044; Hm_lpvt_8289194a911f5d8567a26db6a3d2e49d=1442992044; _5t_trace_sid
HtmlUnit邮件群发 为了用Java编写一个邮件群发软件,接触到了htmlunit,没太大技术含量,仅是使用htmlunit经验。 import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.util.Arrays;import java.util
HttpUnit Ajax处理 转自网络:http://shenbai.iteye.com/blog/1985844 最近写了个爬虫项目,暂时放在github上。https://github.com/shenbaise/goodcrawler 对于爬虫最难的问题应该是javascript和ajax的处理。现在很多网站使用大量ajax,普通爬虫无法获取js生成的内容。 目
安卓 VersionCode和VersionName Google为APK定义了两个关于版本属性:VersionCode和VersionName,他们有不同的用途。VersionCode:对消费者不可见,仅用于应用市场、程序内部识别版本,判断新旧等用途。VersionName:展示给消费者,消费者会通过它认知自己安装的版本,下文提到的版本号都是说VersionName。 结尾有三个常见问题的解决方案同一个版本号,对应了多个Vers
cmd查看sqlite数据库 首先我们要进入到cmd下,同时要保证你的模拟器是打开着的,然后输入以下命令adb shell可以通过ls查看adb下面都有那些文件,输入cd data/data进入到data目录下在输入ls命令查看该目下有些什么文件,在这个data目录下的文件就是你所安装的应用程序的包的命名如 输入cd com.vodone.caibo的命令进入到你
清除电脑历史记录 在“开始搜索”框或“运行”框中输入“gpedit.msc”,打开“本地组策略编辑器”窗口,依次打开“用户配置→管理模板→Windows组件→Windows资源管理器”,在右侧窗格中找到“在Windows资源管理器搜索框中关闭最近搜索条目的显示”项目,双击打开属性窗口,在这里选择“已启用”,确认之后即可生效,以后就再也不会自动保存搜索记录了。 提示:关闭搜索记录后将不会在搜索时显示相应的搜索建
开发者如何利用工具快速开发出完美的App 开发者如何利用工具快速开发出完美APP 传统的个人开发者,要想开发出一个完美的APP要经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上进行测试,接着是对APP做手机适配性测试,需要借很多手机进行测试,测试完毕后,上线,和很多渠道商合作,然后发布上百个渠道等,后续还可能涉及到很多复杂
SpringMVC学习笔记 需要格外注意的一个地方:**1.SpringMVC 严格的处理,拦截到的请求,如果没有映射的,都会报错 !!! 2.希望直接跳转到 WEB-INF/下的某个jsp 而不通过控制器,需要配置 打开 tomcat下 web.xml <servlet> <servlet-name>default</servlet-name> <servlet-class>o
SpringMVC的深入探讨 未完待续.........### 需要格外注意的一个地方:1.SpringMVC 严格的处理,拦截到的请求,如果没有映射的,都会报错 !!!2.希望直接跳转到 WEB-INF/下的某个jsp 而不通过控制器,需要配置 但是一旦配置,@RequestMapping() 无效了 ,全部访问不到 此时加上 即可 ,两种访问方式 都正常 3. 使用
Java枚举类型 public class EnumTest {// public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
Eclipse 中文乱码 一般Java文件编码格式是UTF-8的。以下以默认GBK改为UTF-8为例。 总方案:##.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式。 eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK 汉化版:eclipse->窗口->首选项->常规->工作空间-
任务调度Quartz参数详解 package demo2;import java.text.ParseException;import org.quartz.CronExpression;import org.quartz.CronTrigger;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.Schedul
SpringMVC存取3大域对象 SpringMVC存取Session的两种方法-- - 部分来源网络方法一:使用servlet-api@Controller public class ManagerController { @Resource private ManagerService managerServiceImpl; @Req
SpringMVC细节 :个人总结 父子容器的启动, 先启动 父 WebApplicationContext 然后自启动 DispatcherServlet ,初始化(子Spring容器) WebApplicationContext 并将 业务层, 持久层的Spring 容器作为父容器 好处: 1. 允许 展现 层 和 业务层,持久层更好的解耦 。因为展现层的bean定义在子容器中,而业务层和持久层
SpringMVC笔记 默认配置文件名 中央控制器-servlet.xml springmvc-servlet.xml 且放在 web-inf下面 改变: 1. 新建 source文件夹 –>spring.xml 2. web.xml 下面 添加 : contextConfigLocation clas
Jstl标签库代替 struts2 标签 使用标签库时候,我习惯性的把能把struts2 的标签用jstl替换的就替换,不能替换的就直接用了!大多数是可以替换的varStatus是jstl循环标签的一个属性,varStatus属性。就拿varStatus=“status”来说,事实上定义了一个status名的对象作为varStatus的绑定值。该绑定值也就是status封装了当前遍历的状态,比如,可以从该对象上查看是遍历到了第几个元素:${
开发过程中Dug 个人 整理 mysql 的 级联删除与级联更新 create table student(id int,departmentId int,foreign key(departmentId) references department(departmentId) on delete cascade ;);级联更新(如:某次需要更新了 department表的某一个id 号
Struts2 笔记总结 一.OGNL中的#、%和$符号1.#符号的三种用法 1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(
精选博客达人 本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后 CSDN 鸿洋:http://blog.csdn.net/lmj623565791 爱哥:htt