android

  • SDK5.0 的Hierarchy view使用方法

    Android做维护开发的时候,Hierarchy view是非常好用的界面分析工具,对于不是自己开发的界面,可以很方便的查看到view的id,以定位view的相关代码. 但是似乎是Android4.0之后,原先在tool目录的启动方式不能用了,硬要让人使用Android device monitor(ADM). 打开了ADM之后,像原先一样的点击device工具栏的Hierarchy 图标,发现获取出来的view不能查看id.. 不能查看id我还要它干毛.... 放弃了好一段时间后,还是觉得没

    hierarchy, android, viewMay 12

  • Android 导航(介绍)页面ViewPager内存溢出解决方法
    Android 导航(介绍)页面ViewPager内存溢出解决方法

    现在基本每个Android App都会标配一个启动介绍的页面,或做产品介绍,或做app功能展示,既然起导航界面,基本思路就是用ViewPager实现. 正好这几天在做这个导航界面,我的测试手机是魅族MX3,做完之后测试还行,没有明显卡顿的现象,但是当我把debug的apk装到米3和魅蓝上时,程序运行到这个导航界面会马上crash掉,偶尔没有crash也会出现明显的卡顿现象,体验效果非常差. 打开Android Studio的内存管理器查看运行时分配内存,当时我就蒙逼了,180+M左右,就这个导航

    android, oom, viewpager, 图片导航May 11

  • 相对完美的后台Service实现播放音乐功能

    对于用Context.startService()启动的service生命周期为onCreate()-onStartCommand()-onDestroy();如果多次用context.startService启动service只会多次执行onStartCommand()方法.根据音乐播放器的特性使用Context.startService()调用在合适不过了. public class MyMusicPlayer extends Service implements MediaPlayer.O

    android, mediaplayer, ServiceMay 11

  • 深入讲解WebView--下
    深入讲解WebView--下

    摘要 作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件.今天就为大家讲讲Android中WebView的详细使用方法 本文原创,转载请注明地址:http://blog.kymjs.com/ 接上一篇博客[深入讲解WebView上] 判断 WebView 是否已经滚动到页面底端 在View中有一个getScrollY()方法,可以返回当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离. 还有ge

    android, webviewMay 10

  • android 自定义view的xml属性,attrs.xml汇总

    CSDN博客已经不在使用,,转载请注明出处:http://my.codeweblog.com/witype716/blog/412739 对于自定义的组件,我们不仅可以利用view自带的xml属性进行布局控制还可以通过自定义xml属性的方式实现对view的控制.下面就通过我自己的一个小demo给大家演示一下具体的操作流程.大神请移步!!! 本文中的xml属性续 switch button android仿iso7扁平开关按钮详情请移步. 原理解析: 我们一般写xml属性时一般都是android:

    xml, androidMay 9

  • ProgressDialog使用总结

    ProgressDialog的使用 ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口. ProgressDialog的创建方式有两种,一种是new Dialog ,一种是调用Dialog的静态方法Dialog.show(). // 方式一:new Dialog final ProgressDialog dialog = new ProgressDialog(this); dialog.show(); //

    android, ProgressDialogMay 8

  • android开发中快捷键

    AVD中切换横竖屏快捷键 ctrl+f12 eclipse快捷键:

    eclipse, android, 快捷键May 8

  • 用Dalvik指令集写个java类

    Dalvik指令集 .class public LCalculate;#定义类名 .super Ljava/lang/Object;#定义父类 .method public static main([Ljava/lang/String;)V#申明静态main()方法,L表示这是一个类 .registers 5 #方法中使用5个寄存器 .prologue #代码起始指令 nop #空指令 nop nop nop new-instance v0, LCalculate; #构造一个Calculate

    android, 反编译, dalvik指令集May 8

  • Android WebView保存Cookie登录

    因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能.同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代码: /** * Sync Cookie */ private void syncCookie(Context context, String url){ try{ Log.d("Nat: webView.syncCookie.url", url); CookieSyncManager.c

    android, webview, Cookie, CookieManager, CookieSyncManagerMay 8

  • Dalvik字节码的类型,方法与字段表示方法

    Dalvik字节码有着自己的类型,方法与字段表示方法,这些方法与Dalvik虚拟机指令集一起组成了一条条的Dalvik汇编代码. 1.类型 Dalvik字节码只有两种类型,基本类型与引用类型.Dalvik使用这两种类型来表示Java语言的全部类型,除了对象与数组属于引用类型外,其他的Java类型都是基本类型.BakSmali严格遵守DEX文件格式中的类型描述符定义.类型描述符对照如下表 语法 含义 V void,只用于返回类型 Z boolean B byte S short C char I

    android, 反编译, 字节码, dalvikMay 7

  • android多分辨率像素指定
    android多分辨率像素指定

    开发手机android应用,必定面临多屏幕支持问题.你一定希望应用程序能在不同的大小的手机上都能很好的展现漂亮的布局和细腻的图片.本文将介绍如何做到这一点. 先看看没有支持多分辨率程序的效果.下面是同一个程序运行在两个不同规格的屏幕上的截图.右边这个似乎不可接受. 图1:480*800,3.5寸屏 图2 480*800,5寸屏 支持多分辨率后的效果 图3 480*800,3.5寸屏 图4 480*800,5寸屏 我们先来了解一些屏幕的基本概念: 物理尺寸: 就是所说的几寸的屏幕,代表屏幕对角线的

    android, 适配, 多分辨率May 6

  • 分析Android程序之破解第一个程序
    分析Android程序之破解第一个程序

    破解Android程序通常的方法是将apk文件利用ApkTool反编译,生成Smali格式的反汇编代码,然后阅读Smali文件的代码来理解程序的运行机制,找到程序的突破口进行修改,最后使用ApkTool重新编译生成apk文件并签名,最后运行测试,如此循环,直至程序被成功破解. 1. 反编译APK文件 ApkTool是跨平台的工具,可以在windows平台与linux平台下直接使用.使用前到:http://code.google.com/p/android-apktool/ 下载ApkTool,目

    android, 反编译, apktoolMay 6

  • Android插件开发框架 Android-Plugin-Framework

    项目地址:https://github.com/limpoxe/Android-Plugin-Framework Android-Plugin-Framework 此项目是Android插件框架完整源码以及实例.用来开发Android插件APK,并通过动态加载的方式在宿主程序中运行. 若插件APK是完全独立的APK,那么插件apk也可独立安装运行. 若插件APK不是完全独立的apk,比如和插件宿主程序共用一些依赖库,那么插件apk只能在宿主程序中运行.不可独立运行. 因为此时插件apk的代码是不

    android, apk, 插件, 动态加载, pluginMay 5

  • android导出项目时遇到errors occurred during the build

    遇到errors occurred during the build这个问题很久了,没有找到好的方法,一直都是用debug下的apk包再签名,这样就不能对apk包进行混淆和加密等操作了,诸多不便! 所以还是要解决这个问题,百度是不行了,于是进到项目根目录下进入.detadata文件夹下,查看eclipse的日志文件.log.查看后得知,如下所示: !ENTRY com.android.ide.eclipse.adt 4 0 2015-05-04 09:58:57.962 !MESSAGE Exp

    android, eclipse-adt, errors-occurred-during-the-buildMay 4

  • Android Fragment 数据动态更新的问题

    在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有些确实

    fragment, androidMay 4

  • Android studio assets error:前言中不允许有内容

    根据以往在eclipse上的经验,在Android studio上开发的时候也将assets目录放在了src/main/res目录下,build的时候出现如下异常: Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources] Configuration on demand is an incubating feature. :app:clean :app:preBuild UP

    android, StudioMay 2

  • android 异步查找联系人

    今天看了Google官方对Accessing contacts data这部分的介绍,感觉我们在使用getLoaderManager().initLoader(0, null, this);时候,会在本类一般是view层的类里面实现参数三的接口,不过这里感觉没有将视图与数据分开,虽然initLoader是一个异步操作,使用继承asyncTaskLoader来查询联系人,这个我还是想将他包装一下,放到control层里面,也就是说写一个control类来做数据的查询,这个类不需要继承AsyncTa

    android, 回调接口与一步加载April 29

  • 黑白图片的两种生成方法

    要将一张图片改成黑白的有两种方法 第一种方法 撇开android系统不说,直接修改像素点的颜色 第二种方法 使用android系统内置的图片处理功能 ------------------------------ 第一种 /** * 将彩色图转换为黑白图 * * @param 位图 * @return 返回转换好的位图 */ public static Bitmap convertToBlackWhite(Bitmap bmp) { int width = bmp.getWidth(); // 获

    android, 图片, 图像, 照片, 安卓, 头像, 黑白, 灰白April 29

  • Android URLconnection

    使用Thread请求HTTP 普通的使用java的Thread 线程,在重写run 方法,实现HTTPConnection public class DoubleMeActivity extends Activity implements OnClickListener { EditText inputValue=null; Integer doubledValue =0; Button doubleMe; @Override public void onCreate(Bundle savedI

    android, JavaApril 28

  • Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释

    本文大部分参考自 http://blog.csdn.net/mayingcai1987/article/details/6200909 ,对原文中的讲解FLAG_NEW_TASK地方加了一些自己的观点,用红色标记 1. Task是包含一系列Activity的堆栈, 遵循先进后出原则. 2. Task默认行为: (1) 前提: Activity A和Activity B在同一个应用中. 操作: Activity A启动开僻Task堆栈(堆栈状态: A), 在Activity A中启动Activit

    android, ActivityApril 28

  • 在Android上做List Remove的时候遇到的异常

    目的是从createdList里面找到匹配的pendingStatusList,并将其从pendingStatusList中remove for (DocSyncStatus pendingDss : pendingStatusList) { for (DocSyncStatus createdDss : createdList) { if (pendingDss.getDocHash().equals(createdDss.getDocHash())) { // add into the re

    iterator, android, ListApril 28

  • Robotium API

    Robotium API 翻译(三)--判断测试结果的方法assert.is.search :http://blog.csdn.net/luckyyulin/article/details/19154987 Android 自动化测试(5)(robotium):http://www.2cto.com/kf/201410/344593.html robotium3.6与4.0以后的区别 :http://blog.csdn.net/hunterno4/article/details/8832221

    api, android, RobotiumApril 27

  • monkey如何通过uiautomatorviewer的bounds坐标点击控件
    monkey如何通过uiautomatorviewer的bounds坐标点击控件

    在使用monkeyrunner的时候会经常遇到元素通过坐标定位的问题.下面是解决这类问题的其中一种办法: 例如:一个button的bounds坐标是[361,744][649,844],做如下操作 1. 通过uiautomatorviewer获取,如图:(此图只是个例子) 2.取出控件的四个角的坐标,如图:(此图也只是个例子) 3.从这些坐标中,可以看出.x的取值在361~649之间,y的值是744~844之间.然后定位在这些范围之内就可以了.例如(380,800)就可以定位上了.

    android, monkeyrunner, uiautomatorviewerApril 27

  • #工作笔记 Android 各类统计数据

    1. Android官网统计数据 http://developer.android.com/about/dashboards/index.html 提供:分辨率统计.系统版本统计 数据更新比较及时,但是国内很多数据应该没有统计到 2. 友盟指数 http://www.umindex.com/ 提供:(iOS/Android都有) 机型统计.系统统计.分辨率统计.用户网络统计(WiFi 3G).位置统计 但是数据不算及时,系统统计没有Android 5.0的统计. // 本想合并在以前工作笔记里,

    android, 分辨率统计, 系统版本统计, 机型统计, Adnroid数据统计, 友盟统计April 27

  • Android 自定义Combobox

    自定义Combobox public class Combobox extends TextView { private Context context; private Dialog mDialog; private List<String> mItems; private String title ; private TextView titleText; private List<CodenamePair> pairs; private boolean isMultipleC

    android, comboboxApril 25

  • [视频]在idea中建立Android应用并在genymotion虚拟机运行
    [视频]在idea中建立Android应用并在genymotion虚拟机运行

    视频下载地址:http://pan.baidu.com/s/1dDrREE1 各位idea及java爱好者们,大家好,本次视频,我们讲解一下如何在idea中建立一个普通的Android项目,并在虚拟机上运行.我们这里用的虚拟机是 genymotion,下载地址群共享里面有,qq群号:185441009. 下面,我们先打开idea,下面,我们开始建立项目. 我们选择第二项,application module. 这里需要配置Android SDK,选择相应的目录就行了. 大家可以看到,设备列表中有

    android, Genymotion, ideaApril 25

  • Monkeyrunner点击方法

    安卓自动化测试工具MonkeyRunner之使用ID:http://www.51testing.com/html/30/n-848530.html Monkeyrunner学习之三(如何使用坐标去点击的方法):http://blog.csdn.net/lin_feng_912/article/details/23205085 Android自动化测试之Monkeyrunner解决ID重复问题http://blog.csdn.net/testing_is_believing/article/det

    android, monkeyrunnerApril 24

  • monkey.monkeyrunner使用方法

    http://blog.csdn.net/marshalchen/article/details/9119979 http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980086.html http://blog.sina.com.cn/s/blog_b54ee2ac0101ccjz.html http://www.douban.com/note/365649342/?type=like http://www.blogjava.net/qil

    monkey, androidApril 24

  • Android开发小技巧之-------Android Support Library 22.1

    官方刚刚更新了support library 22.1,更新挺猛 Android Support Library 22.1 发布信息汇总 Android Support Library 22.1 发布 然后可能大家去sdk更新了,但是发现仍然没法用AppCompatActivity.很简单,AppCompatActivity是属于V7包的,所以我们只需要导入最新的v7包就行了. compile 'com.android.support:appcompat-v7:22.1.0'

    android, support, Library, 22.1, AppCompatActivityApril 24

  • 从当前Activity 获取根视图(Root view )

    1. getWindow().getDecorView().findViewById(android.R.id.content) 2. private static View getRootView(Activity context) { return ((ViewGroup)context.findViewById(android.R.id.content)).getChildAt(0); }

    androidApril 23

  • ActionBarDrawerToggle+DrawerLayout实现双向侧滑栏
    ActionBarDrawerToggle+DrawerLayout实现双向侧滑栏

    本实践在于练习使用ActionBarDrawerToggle+DrawerLayout实现双向侧滑栏菜单布局 需要的库文件 android-v7-appcompat 所选要的jar android-support-v4.jar,android.jar 效果图 点击Home菜单 ↓-->searchview被隐藏 点击照相机 ↓-->searchview被隐藏 点击搜索 ↓ 点击隐藏菜单 ↓ 首先是ActionBar的菜单设计toggle_menu.xml <menu xmlns:andr

    android, drawerlayout, ActionBarDrawerToggle, 双向侧滑栏April 23

  • Android 手把手教您自定义ViewGroup(一)
    Android 手把手教您自定义ViewGroup(一)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38339817 , 本文出自:[张鸿洋的博客] 最近由于工作的变动,导致的博客的更新计划有点被打乱,希望可以尽快脉动回来~ 今天给大家带来一篇自定义ViewGroup的教程,说白了,就是教大家如何自定义ViewGroup,如果你对自定义ViewGroup还不是很了解,或者正想学习如何自定义,那么你可以好好看看这篇博客. 1.概述 在写代码之前,我必须得问几个问题: 1.ViewG

    android, 自定义, ViewGroupApril 23

  • Android 自定义ViewGroup手把手教你实现ArcMenu
    Android 自定义ViewGroup手把手教你实现ArcMenu

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37567907 逛eoe发现这样的UI效果,感觉很不错,后来知道github上有这么个开源项目~~~~当然本篇不是教你如何使用这个开源项目,而是教你如何自己通过自定义ViewGroup写这样的效果,自定义ViewGroup也是我的痛楚,嘿嘿,希望以此可以抛砖引玉~~ 效果图: 1.实现思路 通过效果图,会有几个问题: a.动画效果如何实现 可以看出动画是从顶点外外发射的,可能有人

    android, 自定义ViewGroup, ArcMenuApril 23

  • Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
    Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42407923 ,本文出自:[张鸿洋的博客] 1.概述 话说,随着Android SDK版本的升级,很多控件增加了新的属性方便我们的使用,比如LinearLayout中多了:divider.showDividers等,用于为其内部元素添加分隔:但是呢,这样的属性在较低版本的SDK中不能被支持,那么,我们在开发过程中,可能会出现这样的需求:将这个新的特性想办法做到尽可能的向下兼容.

    android, dividerApril 23

  • Android 自定义View (一)
    Android 自定义View (一)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 [ 3.重写onMesure ] 4.重写onDraw 我把3用[]标出了,所以说3不一

    android, 自定义ViewApril 23

  • Android FoldingLayout 折叠布局 原理及实现(二)
    Android FoldingLayout 折叠布局 原理及实现(二)

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/44283093,本文出自: [张鸿洋的博客] 1.概述 在上一篇Android FoldingLayout 折叠布局 原理及实现(一)我们实现了下面的1,2,3. 1.Matrix的setPolyToPoly使用 2.在图片上使用渐变和阴影 3.初步的FoldingLayout的实现,完成图片的折叠显示(可控制折叠次数.包含阴影的绘制) 4.引入手势,手指可以可以Folding

    android, FoldingLayoutApril 23

  • APK的反编译工具,Apktool,Dex2jar,JD-GUI等使用

    http://blog.csdn.net/lostinai/article/details/44201971 http://blog.csdn.net/stay_foolish_one/article/details/41659723 http://blog.163.com/[email protected]/blog/static/1032422412013112221910595/ (mac下) 一.用Apktool反编译和编译的方法 评价:它仅将DEX文件反编译成Smali源码:XML文件能生成明码格

    androidApril 22

  • android性能测试

    没有root的手机,root过再来看这篇文章 步骤 运行windows cmd,输入 adb shell 进入shell状态,此时应该前面会有 $ 符 输入top命令和grep命令 top | busybox grep com.XX(这边是测试的包名) 就可以打印出日志了,一般我们就看cpu% 和 第二个内存占用就可以了. 等等,somebody会说,busybox是什么? 确实,有些手机应该是直接可以运行grep命令的,就像下面这样: top | grep com.XX(这边是测试的包名) 不

    grep, shell, android, busybox, 测试, 性能April 22

  • 事件驱动开发

    最近android的事件驱动开发风靡一时,一夜之间似乎所有人都在搞这个东西,这里我就记录一下我是怎么把我的应用(TT日程管理)重构为事件驱动模式的. 前言 首先呢,最主要的,就是eventbus,github地址,类似的一个开源项目是otto,github地址,不过我看了好多文章,似乎说otto性能上不如eventbus好.所以我权且使用eventbus吧. 点击查看全文

    android, 事件驱动, eventBusApril 22

  • 十分钟彻底理解java值传递
    十分钟彻底理解java值传递

    java值传递思考 本文主要举例说明为什么java是值传递.普通类对象的传递和String类型的传递过程. 先看下代码,很简单 Person类 public class Person { public String name; public Person(String name) { this.name = name; } } 测试方法: public static void test() { Person p = new Person("Lilei"); System.out.pri

    android, Java, 引用, 值传递April 22

  • Android 反编译工具---apktool篇
    Android 反编译工具---apktool篇

    下载apktool工具:笔者提供笔者自己使用的版本工具,下载地址 http://pan.baidu.com/s/1de762 下载之后解压有三个文件!] 将需要反编译的apk文件放到解压之后的文件夹中 打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f ethanapp.apk ethanapp.apk (命令中ethanapp.apk指的是要反编译的APK文件全名,ethanapp为反编译后资源文件存放的目录名称,即为:apktool.

    android, apktoolsApril 22

  • mac上配置环境变量

    http://blog.sina.com.cn/s/blog_7d1c5c8601015ppr.html http://zhidao.baidu.com/link?url=gynbe0yvtPlv-WWCKoQ6krr938_jz-vGXwEDsTQ6ie-X6EzfSqEgXgsPnRZDwXC5YLn5-TT_33xQRo_VRBbvlYmLN1rzCg7b7H1lMOUOxM7 这两个都要有

    androidApril 20

  • android内存分配(android:largeHeap)

    每个程序都很大的内存可以使用,在使用前,你要明白你真的需要这么多的内存吗?在3.0以后程序就有largeHeap选项,如果为true,程序可以使用256M(我的设备)可以通过ActivityManager.getMemoryClass(()获取,为false 程序可使用内存为64(我的设备),可以通过getMemoryClass()获取,在网上找了些资料: 
–G1: 16MB 
–Droid: 24MB
 – Nexus One: 32MB – Xoom: 48MB 我的的设备是:tab 2,

    android, 内存分配April 20

  • android 开发,用一行代码操作只使用一次的 view

    使用 for activity: ViewHelper helper = new ViewHelper(MainActivity.this); helper.id(R.id.text_view).text("hello world"); helper.id(R.id.button).clicked(new View.OnClickListener() { @Override public void onClick(View v) { } }); helper.id(R.id.image

    androidApril 20

  • Android NDK 开发入门环境配置与小例子
    Android NDK 开发入门环境配置与小例子

    NDK:Native Development Kit原生开发工具 NDK能干什么:NDK使得在android中,java可以调用C函数库. 为什么要用NDK:我们都知道,java是半解释型语言,很容易被反汇编后拿到源代码文件,在开发一些重要协议时,我们为了安全起见,使用C语言来编写这些重要的部分,来增大系统的安全性.还有,在一些接近硬件环境下,相信大家都清楚C与java的优劣.顺带提一下:NDK并不能显著提升应用效率.why?我们都觉得C语言比起java来说效率要高出很多,一方面,随着jdk的不

    android, ndk, jni, 配建环境, 免cygwinApril 19

  • mac上设置robotium环境的总结

    在mac上配置robotium环境,需要注意以下几点: java jdk+jre的安装和环境变量的设置 eclipse的安装 eclipse上安卓sdk和adt的扩展和安装 安卓环境变量的设置 eclipse/mac上对安卓真机的设置:http://my.codeweblog.com/u/855532/blog/403077 apk的反编译:http://my.codeweblog.com/u/855532/blog/403095 apk的重签名:http://my.codeweblog.com

    android, RobotiumApril 17

  • 如何生成KeyStore

    如何生成KeyStore:http://my.codeweblog.com/victorHomePage/blog/109638 http://blog.csdn.net/wirelessqa/article/details/8997168

    androidApril 17

  • [Android]继承式UI界面布局设计
    [Android]继承式UI界面布局设计

    一般而言,Android界面布局使用聚合的方式比较多,这种方式要求首先构建一批能够复用的组件,然后在Activity的布局文件中进行聚合.尽管这种方式能够完成组件的复用,但如果这些组件在不同Activity中的布局有很多相同点的时候,也还是会带来很大程度的冗余(代码).本文介绍一种比聚合更加有效的界面布局方式--继承式布局. 对于类的继承和对象的聚合之间有哪些相同点和不同点,分别适用于哪种场景,相信大家已经深有体会.在此就不多讲了.其实类比过来,Android的界面布局也是如此.假设我们需要实现

    android, 继承, 界面设计, 界面继承, 分层设计April 16

  • 清理你的Android代码

    随着项目代码越来越多,随着需求的不断变更,随着人员的不断交替,代码中充斥着各种脏代码,死代码,无用的资源.这时候,就需要一套工具来清理你的工程. 以下是几个常用的工具或者插件: 发现潜在的问题-- Lint http://blog.csdn.net/hudashi/article/details/8333349 检测Java无用代码 -- UCDetector http://www.jb51.net/softjc/123402.html 清理无用的代码文件和资源文件 -- CU https://

    android, 清理April 16