![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
月天寒6
好的程序,是架构出来的;而能跑的程序,是调试出来的
展开
-
Android 程序优化总结
第一部分 编程规范1.1 基本要求:程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。打算干什么,要简单,直接。尽量使用标准库函数和公共函数不要随意定义全局变量,尽量使用局部变量。使用括号可以避免二意性可读性要求:可读性第一,效率第二源程序文件,都有文件头说明每个函数,都有函数头说明常量定义 和变量定义和引用时,要添加注释处理过程的每个阶段转载 2015-01-07 23:36:55 · 538 阅读 · 0 评论 -
单独使用ndk的编译器
脚本里面想要把编译器设定为android的编译器的话,参考下面:./configure --host=arm-linux-androideabi CFLAGS="--sysroot=/home/huang/Desktop/webrtc_android/src/third_party/android_tools/ndk//platforms/android-21/arch-arm"原创 2015-12-10 15:53:27 · 445 阅读 · 0 评论 -
android.mk编写浅析
摘自:http://blog.csdn.net/jshazk1989/article/details/6823888#先写一个简单的Android.mkLOCAL_PATH := $(call my-dir) #指定当前目录 include $(CLEAR_VARS) #引入编译变量LOCA转载 2015-12-01 09:51:14 · 458 阅读 · 0 评论 -
sufaceview
说明:本文是转载的,转载自哪里我也不知道,貌似经过很多层转载了,在这里先对原创者表示谢意.通过自定义View, 我们知道使用它可以做一些简单的动画效果。它通过不断循环的执行View.onDraw方法,每次执行都对内部显示的图形做一些调整,我们假设 onDraw方法每秒执行20次,这样就会形成一个20帧的补间动画效果。但是现实情况是你无法简单的控制View.onDraw的转载 2015-12-24 11:10:02 · 476 阅读 · 0 评论 -
ubuntu编译android源码出现的问题记录
1.Can't locate Switch.pm in @INC (you may need to install the Switch module) 解决方法是安装perl的switch库: sudo apt-get install libswitch-perl 2./usr/bin/ld: cannot find -luuid 我的错误原因是在/lib/x原创 2016-03-02 11:43:10 · 499 阅读 · 0 评论 -
Ubuntu下搭建 Eclipse+NDK for Android JNI 的开发环境
一、准备安装包1、去官网下载adt-bundle-linux 和 Android-ndk,我的环境是Ubuntu64位,所以我下载的版本是:(1)adt-bundle-linux-x86_64-20131030.zip(2)android-ndk-r9b-linux-x86_64 .tar.bz2 下载完后解压,用命令行进入,执行 " ./eclipse ",就可以启动转载 2015-02-03 10:32:56 · 465 阅读 · 0 评论 -
Android音频底层调试-基于tinyalsa
转自:http://blog.csdn.net/kangear/article/details/38139669由于Android中默认并没有使用标准alsa,而是使用的是tinyalsa,所以就算基于命令行的测试也要使用libtinyalsa。Android系统在上层Audio千变万化的时候,可以能这些个工具实时查看到,比如音频通道的切换等等. 1.编译tinyals转载 2016-03-17 19:11:25 · 1116 阅读 · 0 评论 -
解决init: sys_prop: permission denied uid:1003 name:service.bootanim.exit问题
转自:http://www.codes51.com/article/detail_113164.html这个错误是在调用property_set函数时出现的。通过打印信息,找到了以下代码/android/system/core/init/property_service.cif (check_perms(msg.name, cr.uid, cr.gid, source_ctx)转载 2016-03-10 19:02:21 · 1827 阅读 · 0 评论 -
android源码开发笔记
Android系统编译完后,在out/target/product/generic/目录下产出了三个文件:system.img、ramdisk.img、userdata.img。system.img:android系统的文件系统,里面包含了android系统的应用程序(apk),系统用到的各种库(jar, so)和资源,配置文件(etc目录下),系统命令(bin,usr/bin, xbin原创 2016-03-03 14:59:55 · 395 阅读 · 0 评论 -
使用CMake进行android native开发
Android NDK中提供了ndk-build脚本,以及若干mk文件,以简化ndk的开发,这对于开发一些小型应用来说足够了.如果对于一些大型工程特别是开源工程,人家是要cmake来组织的该怎么编译呢,总不能自己去重新写.mk文件吧。下面介绍对于这种项目的android库编译方法。1、下载android-cmake https://code.google.com/p原创 2016-05-31 17:16:12 · 10472 阅读 · 0 评论 -
AndroidAnnotations常用标记
@EActivity(R.layout.sample) 注释可以设置Layout,相当于setConentView方法@OptionsMenu(R.menu.sample) 设置Activity的菜单项@EProvider 在ContentProvider中启用Annotations@EReceive 在BroadcastReceiver中启用Annotations原创 2015-09-22 15:38:05 · 434 阅读 · 0 评论 -
android-studio undefined reference to `__android_log_print
最近在使用android studio编译安卓程序,要用到jni我在jni源码中引用了__android_log_print ,且在Android.mk中加了LOCAL_LDLIBS := -llog但是编译时还是会出现如下错误:Error:(82) undefined reference to `__android_log_print'原因:默认情况下,存在s转载 2015-06-12 18:46:11 · 852 阅读 · 0 评论 -
Android studio 重置 DDMS面板布局
问题一不小心把DDMS的布局拖乱了,点击Restore Default Layout无效。********************************************************我是分割线********************************************************解决方案找到 C:\Us原创 2015-06-19 15:59:00 · 2210 阅读 · 0 评论 -
Android应用自动更新功能的代码实现
由于Android项目开源所致,市面上出现了N多安卓软件市场。为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们也必须到安卓市场上进行更新,给我们增加了工作量。因此我们有必要给我们的Android应用增加自动更新的功能。既然实现自动更新,我们首先必须让我们的应用知道是否存在新版本的软件,因此我们可以在自己的网站上放置配置文件,存放软件的版本信息: 2转载 2014-12-22 00:04:12 · 379 阅读 · 0 评论 -
C++调用C
以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);#endif C的源文件/*-----------c.c--------------*/int add(int x, int y){return转载 2014-12-26 11:11:46 · 570 阅读 · 0 评论 -
Android.mk的用法和基础
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。选项参考以下文件:build/core/config.mk,默认的值在以下文件中定义:build/core/base_rules.mk。编转载 2014-12-26 19:58:41 · 498 阅读 · 0 评论 -
Android使用ShowcaseView添加半透明操作提示图片的方法
在安卓系统第一次使用的时候,我们会看到类似如下左图的界面,它用一个半透明的图片遮盖住下面的界面,而突出界面中的某一个按钮或者图标,然后在旁边写上若干提示文字,告诉用户某个操作方法。类似的,当我们第一次使用某些软件的时候,也会出现一个半透明的提示界面,比如知乎在第一次查看的时候,会告诉你右划返回,当你以后再进行相同的操作时,这个半透明的提示图片就不会出现了。 那么我们怎样在自己的安卓应转载 2014-12-28 23:11:54 · 4017 阅读 · 1 评论 -
Android4.3 蓝牙BLE初步
一、关键概念:Generic Attribute Profile (GATT)通过BLE连接,读写属性类小数据的Profile通用规范。现在所有的BLE应用Profile都是基于GATT的。 Attribute Protocol (ATT)GATT是基于ATT Protocol的。ATT针对BLE设备做了专门的优化,具体就是在传输过程中使用尽量少的数据。每个属性都有一个转载 2015-02-07 10:24:05 · 502 阅读 · 0 评论 -
Android apktool反编译资源文件为空解决办法(测试天猫、淘宝等apk成功)
1 Exception in thread main brut.androlib.androlibexception multiple resources解决办法:下载最新的apktool,在google官网上。测试,如果未成功采取第二种方法 2 Exception in thread main org.jf.dexlib.util.exceptionwithcontext i原创 2015-02-27 22:35:57 · 2072 阅读 · 0 评论 -
友盟工具使用笔记
1、应用统计分析统计和分析流量来源、内容使用、用户属性和行为数据,以便开发商利用数据进行产品、运营、推广策略的决策。2、消息推送帮助开发者建立于用户直接沟通的渠道。将APP的内容更新或者活动通知主动推送给终端用户3、社会化分享组件帮助移动应用快速具备微信分享,微博分享、登录、评论、喜欢等社会化组件功能。4、用户反馈SDK两行代码实现开发者和用户轻松高效沟通。原创 2015-03-05 11:15:40 · 434 阅读 · 0 评论 -
利用线程运行栈StackTraceElement设计Android日志模块
如果你想在你的Android程序中自动打印MainActivity.onCreate(line:37)这种类名.方法名(行数)的日志该如何实现呢?1.引入Java的线2.日志模块设计Java.lang包中提供了StackTraceElement,可以用来获取方法的调用栈信息。通过调用线程函数Thread.currentThread().getStackTrace()可以获得Stac转载 2015-03-07 23:48:13 · 437 阅读 · 0 评论 -
Android框架Annotations浅析
一、Android Studio配置androidannotations环境。1、首先你建立一个module之后,在对应的app中会有一个名为build.gradle的文件(该module有效),而在整个项目外面也会有一个名为build.gradle的文件(全局有效)【这个工具中的application的目录下(相当于Eclipse下的workspace)是可以有多个module的(相转载 2015-05-07 12:05:36 · 361 阅读 · 0 评论 -
android底层去掉虚拟按键
找到framework/base/core/res/res/values/dimens.xml,在其中把Navigation的配置改成0 0dp 0dp因为这个改动只修改了framework的资源文件,编译内核,获取framework-res.apk(./out/target/product/sabresd/system/framewor原创 2016-06-15 18:41:28 · 6999 阅读 · 0 评论