摘要:
增加权限<uses-permission android:name="android.permission.INTERNET"></uses-permission>获取IP地址public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.ne 阅读全文
摘要:
方法一 用Html格式化字符设置TextView htmlFormateTextView = (TextView)findViewById(R.id.txtTextView);String source = "这是一个测试,测试<u>下划线</u>、<i>斜体字</i>、<font color='red'>红色字</font>的格式";htmlFormateTextView.setText(Html.fromHtml(source));方法二 利用Spannable设置EditText 阅读全文
摘要:
在使用adb安装Apk时设置adb install命令: adb install [-l] [-r] [-s] <file> 概述: 将apk文件拷贝到设备并安装。 选项参数:-l means forward-lock the app-r 重新安装,保持程序数据-s 安装到尾部存储在使用adb设置默认安装位置Android 2.2开始系统提供了软件可以装到到SD上的支持,对于adb命令而言也有了改进,Android 2.2开始pm命令支持安装选项参数:setInstallLocation,可以用adb通过shell执行pm设置一些参数,命令如下:adb shell pm setIn 阅读全文
摘要:
问题的引入在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动打印出丰富的信息,格式一般如下:[运行时间][当前类名][方法名] INFO:[用户信息]例如Tomcat启动信息:Jul 9, 2004 11:22:41 AM org.apache.coyote.http11.Http11Protocol startINFO: Starting Coyote HTTP/1.1 on port 8080上面的Log信息的[当前类名][方法名]部分并不是用户添加的,而是Log系统自动添加的。这意味着Log系统能够自动判断当前执行语句是哪个类的哪个方法。获取方法的 阅读全文
摘要:
增加权限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 获取Mac地址public static String getLocalMacAddress(Context c) { WifiManager wifi = (WifiManager) c.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress();}登录 阅读全文
摘要:
原理通过linux cat命令查看/proc/cpuinfo文件,再使用正则表达式从中提取CpuID信息。 linux命令为:cat /proc/cpuinfo返回信息如下面格式:Processor : ARMv7 Processor rev 2 (v7l)BogoMIPS : 99.40Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 CPU implementer : 0x41CPU architecture : 7CPU variant : 0x2CPU part : 0xc08CPU revisi... 阅读全文
摘要:
概述在drawable/xxx.xml中配置,通过配置selector,可以使系统运行时根据控件对象的状态使用相应的图片、文字等。selector中的常用属性android:state_selected 控件选中状态,可以为true或falseandroid:state_focused 控件获得焦点状态,可以为true或falseandroid:state_pressed 控件点击状态,可以为true或falseandroid:state_enabled 控件使能状态,可以为true或falseandroid:state_checkable 控件可勾选状态,可以为true或falseandro 阅读全文
摘要:
利用input keyevent实现input keyevent命令概述input keyevent keycodeinput text "string"利用Instrumentation对象实现 阅读全文
摘要:
在Ubuntu 64位上下载编译Android源码安装必要的包命令行:sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc包清单:git-coregnupgflexbisongp 阅读全文
摘要:
import android.os.Handler;import android.os.Looper;import android.os.Message;public class InvokeLater{ private static Handler handler = new Handler(Looper.getMainLooper()){ @Override public void handleMessage(Message msg) { Runnable task = (Runnable) msg.obj; task.run(); } }; public static... 阅读全文
摘要:
使用反转样式默认情况下Indeterminate Progressbar是白色的,但是如果容器的背景也是白色的,就看不到Progressbar了。不过Android中自带了一些反转样式,可以采用其中一个合适的:<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/><ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/><ProgressBar style="@ 阅读全文
摘要:
问题的来源在Eclipse中一般的jar包在(F3或Ctrl+Click)进到它的Class时,如果没有关联上源代码会有一个按钮提示关联下就可以查看源代码。可是在Eclipse中的android.jar中的类,却只会提示Source not foundThe JAR of this class file belongs to container 'Android 1.6' which does not allow modifications to source attachments on its entries.也就是正常渠道关联不上源代码。如果手动来引入android.ja 阅读全文
摘要:
使用条件手机需要root。原理利用linux下的抓包程序(tcpdump)将数据包存储在手机sd卡上,再在PC上使用Wireshark分析数据包。使用方法安装tcpdump将tcpdump拷入手机sd卡在手机上使用文件管理器把tcpdump移入/system/xbin目录下使用文件管理器更改tcpdump的权限为可执行使用tcpdump通过命令行,或在手机终端中调用下面的命令:tcpdump -p -vv -s 0 -w /sdcard/capture.pcap注:上面的命令无法监听wifi数据包使用Wireshark把手机中的/sdcard/capture.pcap文件拷出,用Wiresha 阅读全文
摘要:
调色的基本概念图片的色彩主要由色相、饱和度、明度决定。色相主要是说色彩的变化,比如红色变化后变成绿色。饱和度是说颜色的鲜艳、丰富程度。明度是强调明暗,最暗则为全黑,最亮为全白。色轮色相色相表现为色轮的旋转角度。设定值反映像素原来的颜色在色轮中旋转的度数。正值表示顺时针旋转,负值表示逆时针旋转。数值的范围可以从 -180 到 +180。饱和度饱和度表现为距离色轮中心的距离。颜色相对于所选像素的起始颜色值,从色轮中心向外移动,或从外向色轮中心移动。数值的范围可以从 -100 到 +100。明度明度表现为RGB各分量的大小,0表示最暗,255表示最亮。颜色变换代码公共代码//从资源文件中得到原始图片 阅读全文
摘要:
基础知识变换矩阵下面这个3 x 3的矩阵,这个矩阵被分割成4部分设:依据矩阵乘法,可得到下面的等式:x = a*x0 + b*y0 + c y = d*x0 + e*y0 + f当a=1,b=0,c=△x,d=0,e=1,f=△y时,有: x = x0 + △x y = y0 + △y 此时即为矩阵平移操作。依上面的原理,可得下表:常见应用调试通过matrix.toString());可以得到矩阵内容,便于调试。平移float dx = 10; //水平偏移量float dy = 10; //垂直偏移量matrix = new Matrix();matrix.setTranslate(px.. 阅读全文
摘要:
概述有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码。虽然Android系统中提供了这样设备识别码,但是由于Android系 统版本、厂商定制系统中的Bug等限制,稳定性和唯一性并不理想。而通过其他硬件信息标识也因为系统版本、手机硬件等限制存在不同程度的问题。下面收集了一些“有能力”或“有一定能力”作为设备标识的串码。DEVICE_ID这是Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。这个DEVICE_ID可以同通过下面的方法获取:TelephonyManager tm = ( 阅读全文
摘要:
相关权限的声明接收权限<uses-permission android:name="android.permission.RECEIVE_SMS"/>发送权限<uses-permission android:name="android.permission.SEND_SMS"/>文本短信发送SmsManager.getDefault().sendTextMessage( strReceiveNumber, null, strMsgToSend, null, null);拦截注册广播监听<application ...> 阅读全文
摘要:
概述在2.3版本的sdk中可以看到在ANDROID_SDK_PATH/tools/下面多了一个proguard文件夹,google把proguard技术放在了android sdk里面,现在已经可以通过正常的编译方式实现代码混淆了。在2.3版本以后,无论开发用的是哪一个版本的SDK,新建一个工程里面都会有default.properties和proguard.cfg两个文件。默认的default.properties代码如下:# This file is automatically generated by Android Tools.# Do not modify this file -- 阅读全文
摘要:
Monkey脚本Monkey脚本支持的命令脚本命令必须为小写字母脚本命令以回车符作为一条命令的结束键盘按下/弹起key [down|up] keycode这个命令模拟一次键盘输入。keycode参数值详见KeyEvent类的KEYCODE列表。这个参数的格式很灵活,例如模拟菜单按钮可以使用82(菜单按钮的键值),也可以使用 KEYCODE_MENU(键值的名称,必须严格都是大写字母),还可以使用menu(Monkey程序会自动添加KEYCODE部分,此时并不区分大小 写)。注意一次完整的敲击(press)操作是一个按下(key down)和弹起(key up)的组合触摸按下/弹起/移动touc 阅读全文
摘要:
NinePatchDrawable绘画的是一个可以伸缩的位图图像,Android会自动调整大小来容纳显示的内容。一个例子就是NinePatch为背景,使用标准的Android按钮,按钮必须伸缩来容纳长度变化的字符。 NinePatchDrawable是一个标准的PNG图像,它包括额外的1个像素的边界,必须保存它后缀为.9.png,并且保持到工程的res/drawable目录中。如果是从APK解压后得到的*.9.png文件,注意它是已将周围的空白像素去掉了的,再使用时必须再加上。 这个边界是用来确定图像的可伸缩和静态区域。你可以在左边和上边的线上画一个或多个黑色的1个像素指出可伸缩的部分(你可以 阅读全文