- 博客(27)
- 收藏
- 关注
原创 介绍一下Android 项目的目录结构
首先,在AS上新建一个项目。系统自动生成的目录结构,如上图。接下来,详细解释下这些文件和文件夹的作用。1. .gradle和.idea这两个目录下都是AS自动生成的文件,也不需要更改什么代码,所以自动隐藏掉就可以了。2. app项目中的代码,资源等等,都是在这个目录下的。下面会详细介绍3. build这个里面主要是在编译时自动生成的文件,忽略4. gradle包含gradle
2018-02-03 17:13:58 1347
原创 JAVA &&(短路与),&,|,||(短路或)
&&和&都是表示与。区别是&&只要第一个条件不满足,后面条件就不再判断。 &要对所有的条件都进行判断。||和|都是表示“或”。区别是||只要满足第一个条件,后面的条件就不再判断。 |要对所有的条件进行判断。
2016-07-20 12:17:53 8007 3
原创 Android 简单的适配问题
1、使用match_parent、wrap_content、layout_weight(权重)2、使用LinearLayout禁用AbsoluteLayout3、使用Android自己的.9图片,自动拉伸4、尽量使用尺寸限定符,如下 (本来想展示做过的项目的截图,这里图片显示不出来,简单说一下吧。后续可能会补上)打开src目录下,会看到很多个 drawable 和 mipmap,这就是不同的尺寸。
2016-07-17 20:07:50 432
原创 Android SDK 目录下的文件夹主要是干什么的
add-ons 这里面保存着附加库,比如google Maps,当然你如果安装了OPhone SDK,这里也会有一些类库在里面。docs 这里面是Android SDK API参考文档,所有的API都可以在这里查到。market_licensing 作为Android Market版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。platforms 是每个平台的SDK真正的文件,里面会
2016-07-12 17:30:17 1818
原创 Android 线程 基本用法介绍
Android 多线程编程其实并不比 Java 多线程编程特珠,基本都是使用相同的语法。比如说,定义一个线程只需要新建一个类继承自 Thread,然后重写父类的 run()方法,并在里面编写耗时逻辑即可,如下所示:class MyThread extends Thread {@Overridepublic void run() {// 处理具体的逻辑}}那么该如何启动这个线程呢?其实也很简
2016-07-09 22:16:08 587
原创 分析一下 Android 异步消息处理机制到底是如何工作的
Android 中的异步消息处理主要由四个部分组成,Message、Handler、MessageQueue 和Looper。 MessageMessage 是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交换数据。 Message 的 what 字段,除此之外还可以使用 arg1 和 arg2 字段来携带一些整型数据,使用 obj 字段携带一个 Object 对象。Handl
2016-07-09 22:07:40 368
原创 简单的说一下 软件的 内聚性 和 耦合性
内聚性,又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。耦合性也叫块间联系。指软件系统结构中各模块间相互联系
2016-07-09 21:22:04 10676
原创 AsyncTask 和 Handler的优缺点
Android不允许在子线程中更新UI,但必须在子线程中执行一些耗时任务,根据执行结果来更新相应的UI控件,可用一套异步消息处理机制。AsyncTask实现的原理和适用的优缺点AsyncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点: 简
2016-07-09 21:10:43 490
原创 Android 中 Activity的生命周期 和 Log输出
Log输出Android系统在用户空间中提供了轻量级的logger日志系统,它是在内核中实现的一种设备驱动,与用户空间的logcat工具配合使用能够方便地跟踪调试程序。Log.v(tag,message); //verbose模式,打印最详细的日志 Log.d(tag,message); //debug级别的日志 Log.i(tag,message);
2016-07-09 16:30:00 2665
原创 关于 Android Studio 的一些基本配置
界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面。 Settings –> Appearance –> Theme ,选择 Darcula 主题即可。字体设置 系统字体设置如果你的Android Studio界面中,中文显示有问题,或者选择中文目录显示有问题,或者想修改菜单栏的字体,可以这么设置。 Settings –> Appearance ,勾选 O
2016-07-08 20:55:19 1194
原创 Android 简单的介绍下 RecyclerView
RecyclerView主要包含如下:Adapter:包装数据集合,并且为每个条目创建视图。ViewHolder:保存用于显示每个数据条目的子View。LayoutManager:将每个条目的视图放置于适当的位置。(目前可以选择的三种,垂直或者水平布局,表格布局,还有瀑布流布局)。LayoutManager 先初始化布局管理器,设置布局管理器。ItemDecoration:在每个条目的视图的周围或上
2016-07-08 19:37:53 275
原创 Android ANR
ANR (Application Not Responding) 即 程序无响应一般耗时逻辑会出现ANR在启动服务后,要记得,stopService()或者stopSelf(),停止服务。
2016-07-08 19:24:36 306
原创 Android 隐藏标题栏
1.在onCreate(){ request.WindowFeature(Window.FEATURE_NO_TITLE); }此 一定要在setContentView()之前执行,否则报错。2.
2016-07-08 19:19:41 307
原创 Android 支付宝开发遇到的一些问题
首先,下载支付宝 SDK 并解压三个文件。(参考支付宝SDK官方文档,还是有用的)其实主要的是四个字符串:PANTNER(商PID) 签约成功可见 SELLER (收款账号) RSA—PRIVATE(商户私钥) RSA—PUBLIC(支付宝公钥)在密钥管理页面获取包含5个JAVA文件Base64,PayResult,SignUtils,ExternalFragment(主要是布局),PayDe
2016-07-08 19:03:44 646
原创 安卓 Manifest 常用属性解析 和 XML 一些属性设置
Applicationandroid:allowBackup="true" allowBackup 可以备份和恢复数据 true 默认trueandroid:supportsRtl="true"supportsRtl 布局设置从右到左 right to left 默认falseActivity android:supportsRtl="true" noHistory true
2016-07-08 18:11:29 429
原创 Android Socket编程
Socket(套接字)用于描述IP地址和端口,是通信链的句柄,应用程序可以通过Socket向网络发出请求或者应答网络请求。Socket是支持TCP/IP协议的网络通信的基本操作单元,是对网络通信过程中端点的抽象表示,包含了进行网络通信所必需的5种信息:连接所使用的协议、本地主机的IP地址、本地进程的协议端口、远地主机的IP地址以及远地进程的协议端口。 Socket有两种主要的操作方式:面向连接的和
2016-07-05 16:57:37 669
原创 Android当中访问网络有哪些方式呢
(1)针对TCP/IP的Socket、ServerSocket(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有一点与普通互联网应用有所差异的。(3)针对直接URL的HttpURLConnection。(4)Google集成了Apache HTTP客户端,可使
2016-07-05 14:59:00 732
原创 Application中的Context和普通的Activity中的Context有什么区别呢?
1.在全局对象中使用application context 2.和activity绑定过的service中。能用activity context的地方都不用Application中的Context,因为后者容易造成内存泄漏,而且能够支持的方法和数据有限。Application的Context是一个全局静态变量,SDK的说明是只有当你引用这个context的生命周期超过了当前activity的生命周
2016-07-05 12:05:23 869
原创 谈谈Android 中this、 getApplicationContext()、getApplication()等等之间的区别
this:代表当前,在Activity当中就是代表当前的Activity,换句话说就是Activity.this在Activity当中可以缩写为this.(使用this, 说明当前类是context的子类,一般是activity application等)getApplicationContext():生命周期是整个应用,应用摧毁,它才摧毁。(使用getApplicationContext 取得的是
2016-07-05 11:57:46 410
原创 Android 启动Service的方式和区别
Service对象不能自己启动,需要通过某个Activity、Service或者其他Context对象来启动。启动的方法有两种,Context.startService和Context.bindService()。两种方式的生命周期是不同的,具体如下所示。 Context.startService方式的生命周期: 启动时,startService –> onCreate() –> onSta
2016-07-05 11:49:13 660
原创 Android 退出应用
1按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。2System.exit(0); //关闭当前activity3网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplication.getInstance().addA
2016-06-29 11:20:50 434
原创 提升ListView的运行效率
No.1 Adapter中有个getView()方法,其中有个convertView参数(用于将之前加载好的布局进行缓存,以便可以重用)。思路是,判断convertView是否为空。为空的话,使用LayoutInflater加载布局,不为空,直接对convertView重用。 No.2 借助ViewHolder获取一次控件的实例。以上都仅仅是Listview。目前,还是使用新技术Recycle
2016-06-27 20:33:34 372
原创 Activity的启动方式
Activity的启动方式一共有四种。分别为 standard:默认的启动方式 重复创建栈顶 singleTop: 该活动已经在栈顶,则不会创建新的实例 singleTask: 拿出所有上层的实例 singleInstance:共享活动实例
2016-06-27 20:12:46 306
原创 Android 切换横竖屏问题
需要注意的是,Toast和AlertDialog,不会影响生命周期。Home键和完全覆盖此Activity是一样的。横竖屏切换简单的说,分为四种可能: 1 设置屏幕不旋转 在Manifest中,设置Activity的 ScreenOrientation=“lanscape”横屏; ”portrait“竖屏。 2 不设置Activity的 ConfigChanges 切
2016-06-27 19:40:44 406
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-06-27 19:14:37 249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人