77ms, total 77ms 10-17 09:51:58.930: E/SQLiteLog(15695): (14) cannot open file at line 30241 of [00bb9c9ce4 - 10-17 09:51:58.930: D/STATUSBAR-NetworkController(2441): refreshSignalCluster: data=-1 bt=false 开发中遇到了上述错误 target GC heap from 64.987MB to 64.000MB 08-12 12:48:52.988: D/dalvikvm(15260): GC_BEFORE_OOM freed 9K android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; public 那为什么区区3,4张图片就会让 android 程序内存不足?
*:d' and <tag> by itself means <tag>:v If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS If no filterspec is found, filter defaults to '*:I' If not specified with -v, format is set from ANDROID_PRINTF_LOG null V/ActivityManager( 500): getTasks: max=1, flags=0, receiver=null V/ActivityManager( 500): com.android.settings /.Settings: task=TaskRecord{42392278 #448 A com.android.settings U 0} V/ActivityManager( 500): We have entry is 5120b, max payload is 4076b octopus@octopus:~$ 加载日志缓冲区 : 使用 adb logcat -b 缓冲区类型 命令; -- Android
android开发中使用AndroidManiFest.xml静态注册的BroadCastReceiver没有作用是什么原因? to discover and pair bluetooth devices) android蓝牙开发——权限 为了在应用程序中使用蓝牙功能,我们至少需要声明两方面的权限:BLUETOOTH和BLUETOOTH_ADMIN 大多数应用程序必须具有这个权限才能够发现本地蓝牙设备,这个权限保护的其他能力(除了发现本地设备)不应该被使用,除非你的应用程序是在用户请求的时候能够修改蓝牙设置的管理者。 你需要在应用程序的manifest文件中声明程序的蓝牙权限。 </manifest> 关于声明应用程序权限的信息,请看<uses-permission>参考。
SoundPool播放的音效要小于7秒 , 否则会出现加载失败的现象; 在Android平台上使用的即时文件越小越好 , 必要的时候可以降低采样频率或者将立体声改为单声道;
="@drawable/bg_normal"/> </selector> 效果图 : 二 9Patch图片详解 9patch图片可以缩放图片的一部分, 来充满全屏, 我们设置不缩放的部门不会被缩放 ; 图片规则 : 9patch图片四周1像素的线条规定了图片的缩放, 显示规则; -- 缩放规则 : 左侧 和 上面的线条规定了缩放区域,左边直线覆盖的区域可以垂直缩放;右边直线覆盖的区域可以水平缩放 简单的按钮背景填充 9patch图片制作 : 进入sdk中的tools,双击 draw9patch.bat 工具, 弹出下面的对话框; 操作方法: 将鼠标放在边界的水平垂直的标线上, 会出现双向箭头, 拖动双向箭头即可设置四周的规则线条; 案例展示 : 下面的三个按钮图片, 第一个按钮显示原来大小, 第二个按钮显示完全拉伸, 第三个按钮使用9patch拉伸; XML布局文件 : <? 尽量将拉伸部位设置在中间; 不设定右侧和下册边距 : 如果不设定右侧 和 下册的线条, 那么默认右边和下侧会有一定边距; 设定右边和下边距完全显示 : 这里为了显示效果明显, 设置完全显示; 拉入 draw9patch.bat
注意一个错误 : 已安装具有该名称和不同签名的数据包 , 早上测试人员报告突然出现这个问题, 在开发的时候我直接将eclipse上编译的版本放到了服务器上, 最后出现了这个问题, 开发的时候明明是好的啊 又发现一个BUG : 在弹出更新对话框, 点击确定下载完毕之后会弹出系统自带的替换应用程序对话框, 在这里点取消的话就会一直卡在Splash界面. 设置一个跳转机制解决这个问题. > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width > <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android > <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android
Android开发之《Android应用开发揭秘》UI事件汇总 /* * Android开发之《Android应用开发揭秘》UI事件汇总 * 北京Android俱乐部群:167839253 * 还好,现在沉淀下来,继续android开发的征程。 以下是Android应用开发揭秘这本书第四章的关于UI的事件处理的总结。基本上都是可以复用的代码。存着日后方便。 android:id="@+id/color" android:orderInCategory="0" android:title="蓝色" /> <item android:id="@+id/ ="2" android:title="青色" /> <item android:id="@+id/color" android:orderInCategory="3" android:title method stub AndroidUnleashed001Activity.this.finish(); } }).create(); dialog.show(); 9.
那么我们看下页面布局代码 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id ="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android :id="@android:id/tabcontent" android:layout_width="fill_parent" android ; import android.content.Intent; import android.os.Bundle; import android.widget.TabHost; import android.widget.TabHost.TabSpec
一、Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成。 三、Android系统架构分为四层: 应用层:java编写运行在虚拟机上的程序。 应用框架层:编写应用时使用的API框架。 九、Android应用解析 1、Activity 一个Activity通常就是一个单独的屏幕,每个活动都被实现为一个独立的类。 2、Intent Android用Intent这个特殊类实现在Activity和Activity之间的切换。 4、Service 十、Android应用程序的生命周期 [img]http://images.51cto.com/files/uploadimg/20100105/145010651.jpg[/img
需要权限 android.permission.BLUETOOTH : 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作; android.permission.BLUETOOTH_ADMIN : 允许程序发现和配对蓝牙设备, 该权限用来管理蓝牙设备, 有了这个权限, 应用才能使用本机的蓝牙设备, 主要用于对配对前的操作; 优先级 : BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提 ", 几乎该类中的每个广播都有该附加域; 蓝牙名称 : StringEXTRA_NAME, 蓝牙名称附加域, 存放蓝牙名称, 值为"android.bluetooth.device.extra.NAME 执行对应信道的SDP查找动作; 如果两个安卓手机之间进行连接需要生成专用的UUID, 如果是对蓝牙串口进行连接, 就使用总所周知的SPP UUID 00001101-0000-1000-8000-00805F9B34FB 获取设备的蓝牙名称 public String getName () 作用 : 获取远程的蓝牙设备名称 (8)获取哈希值 public int hashCode () 作用 : 获取哈希值, 可以重写这个方法 (9)
BluetoothSocket 和 BluetoothServerSocket 类似于Java中的套接字的 Socket 和 ServerSocket;
配置文件 配置 ActionBar 启用 和 关闭 配置文件中指定 targetSdkVersion : 在创建应用的时候, 指定的 targetSdkVersion 大于 3.0 版本, 就会默认启用 并在图标上添加左箭头; -- setDisplayOption(int) : 设置 ActionBar 的显示选项; -- setDisplayShowHomeEnable(boolean) : 设置是否显示应用程序图标 ; -- setHomeButtonEnable(boolean) : 设置是否将应用程序图表转换为可点击按钮; 2. 相关代码 设置不显示应用图标并添加左箭头 : actionBar = getActionBar(); /* 设置将左侧图标设置成可点击图标, 并添加一个左箭头 */ actionBar.setDisplayHomeAsUpEnabled (true); /* 不显示应用程序图标 */ actionBar.setDisplayShowHomeEnabled(false); 设置点击图表回调事件 : ActionBar 中的图表代表的组件
Closeable是可以关闭的数据源或者目标, 实现该接口必须重写close()方法, 调用close()方法可以释放该对象保存的资源;
UI = 控件 + 布局,上一节介绍的是简单控件,这里主要介绍一下Android应用界面开发中的布局。 五大布局 LinearLayout:线性布局。 RelativeLayout:相对布局。 android:gravity:该属性用于控制它所包含的子元素的对齐方式。 外边距 android:marginLeft:控件距布局左边界的距离。 android:marginTop:控件距布局上边界的距离。 android:marginRight:控件距布局右边界的距离。 android:marginBottom:控件距布局下边界的距离。 android:paddingRight:控件中内容距控件右边界的距离。 android:paddingBottom:控件中内容距控件下边界的距离。 AbsoluteLayout 运行Android应用的手机往往千差万别,因此屏幕大小、分辨率都有可能有很大差异,使用绝对布局很难兼顾不同屏幕大小、分辨率问题,因此AbsoluteLayout布局已经过时
铸造坚不可摧的底层护甲:Android应用深度安全防御指南原始译文参考:开发技术前线(原作者:RémiPradal/译者:kevinhong)Android的开放性既是福音也是诅咒。 当应用开始涉猎极其敏感的金融或用户隐私数据时,你面对的将是极其凶险的黑暗森林。 OWASP(开放网络安全项目)揭示了移动端的十大红线,而本文将直击Android开发者最本职的三大防线:网络截获(MITM)、本地被盗与逆向破解。 如果用户被忽悠在手机上信任了一个野鸡中间证书(比如某免费WiFi让你装的证书),他在你应用里输入的所有密码都将被抓包代理截获。 遇到极其核心的算力或是高敏密钥拼接,请毫不犹豫地转舵交给AndroidNDK开发,用C/C++写进原生的.so动态链接库。
Android功能快速上线神器! 推荐一款开源的轻应用开发框架RapidView:[https://github.com/Tencent/RapidView) 用过的都说好,神器! 简介 RapidView是一套用于开发Android客户端界面、逻辑以及功能的开发组件。 布局文件(XML)及逻辑文件(Lua)可以运行时执行,主要用以解决Android客户端界面、逻辑快速更新以及快速开发的诉求。 RapidView的XML语法规则与Android原生XML类似,而写逻辑的Lua部分除语言语法规则外,可以直接使用我们提供的Java API以及Android原生API,因此熟悉Android客户端开发的开发者上手成本会非常小 除了解决动态更新问题外,RapidView希望Android开发者能够以更快的速度开发产品功能需求,因此我们在语法和开发方式上做了一些改变,期望开发者能够实现:小功能极速开发、大功能极速上线。
9.PNG 相当于把一张png图分成了9个部分(九宫格),分别为4个角,4条边,以及1个中间区域,启动它需要在Android SDK 路径下如 X:/android sdk/tools 找到一个draw9patch.bat .9工具.PNG 此时拖入一张图片,区域划分如下: ? .9PNG 区域划分.png 序列 1:区域是导入的图片,以及可操作区域。 因为下方和右方可操作区域是指定内容的显示区域,属于可选区域,可不予理会;但是要注意内容区域的标记不能有间断,否则.9.png图片在放入项目下会报错。 ? .9PNG 操作.png 注意上方和左边的黑色像素,是想让此png图像拉伸操作的时候,只是中间区域被拉伸。选择上方中间区域是为了横向拉伸的时候选取的拉伸像素点,左边则是纵向拉伸像素点。 .9 案例.gif
开发者可以直接在WebView中使用聚合(Polymer)和Material设计。 由于该应用需要访问互联网,所以需要在AndroidManifest.xml中配置: <uses-permission android:name="android.permission.INTERNET" 在JavaScript脚本中通过刚才暴露的name对象调用Android方法。 写一个在JavaScript中调用Android方法的实例,该实例界面包含一个WebView组件,用于显示HTML页面。 方法的功能,并将Android应用中的MyObject对象暴露给JavaScript脚本,暴露成JavaScript脚本中名为myObj的对象。 -- 注意此处的myObj是Android暴露出来的对象--> <input type="button" value="打招呼" onclick="myObj.showToast('<em>Android</em>
文章目录 LruCache 应用场景 LruCache 算法原理 LruCache 实现 LruCache 参考 LruCache 应用场景 ---- 1. Android 中的 LruCache : 其缓存空间就是一个 LinkHashMap 链表 , 当调用 put 方法向其中放入新元素时 , 就会判断这个 LinkHashMap 链表是已满 , 如果没有空间 并保证其插入取出顺序的一致性 ; 当调用 get 方法获取其中的元素时 , 会将该元素提取到队头中 , 这符合了 LRU 算法的要求 ; LruCache 参考 ---- LruCache 参考 : ① Android
Intelij IDEA 的 SDK 概念 (1) SDK 简介 SDK 简介 : -- SDK 需求 : 如果使用 Intelij 开发应用软件, 需要一个 SDK, 最常见的时 JDK, 用于 Java Java ME 移动设备开发; -- Android SDK : Android 开发; -- Flex AIR SDK : Adobe Flash 平台开发; -- Flexmojos SDK : Web 应用的工具, 可以使用 Java PHP JavaScript markUp 等语言; -- Android Moudle : Android 应用模块; -- Ruby Moudle : 自带了 Nexus 6 和 Nexus 9 的虚拟机, 同时也支持创建传统的 Android 设备, 这些设备有基于特定虚拟机的属性的皮肤, 并设定这些皮肤到硬件配置; -- x86 虚拟机 : Android Android 可穿戴 和 电视支持 工程配置 : -- 设备类型选择 : 为了更容易跨平台开发, 工程向导提供了新的模板 为 Android 可穿戴 和 电视设备 创建你的应用; -- 版本选择 :