Android之开发杂记(一)
1、cygwin环境变量设置
可在Cygwin.bat 中设置
set NDK_ROOT=P:/android/android-ndk-r8e
或者在home\Administrator\.bash_profile中设置
NDK_ROOT=/cygdrive/p/android/android-ndk-r8e
export NDK_ROOT
或者在运行程序前设置(绿色方式)
setlocal enabledelayedexpansion
set NDK_ROOT=%cd%\android-ndk-r8e
start %cd%\adt-bundle-windows-x86-20130522\eclipse\eclipse.exe
NDK与eclipse在同一级目录下。
2、Android 属性相关
<application android:icon="@drawable/icon"//应用安装后桌面显示的图标
android:label="@string/app_name">
<activity android:name=".FormulaStudy" android:theme="@android:style/Theme.NoTitleBar" //无标题
android:screenOrientation="sensorLandscape" //只允许横屏切换
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> //第一个Activity
</intent-filter>
</activity>
<uses-library android:name="com.noahedu"/>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10"/>
<uses-permission android:name="com.noahedu.permission.AWARD_SCORE"/>
</application>
3、Shell多行注释
: :||:<<\COMMENTS
注释内容
COMMENTS
4、SourceInsight配置
AStyle格式化工具: 在Command增加AStyle,在Run填写"~\AStyle.exe" --style=linux -s4 -S -N -L -m0 -M40 --suffix=none --convert-tabs %f,再配置快捷键
TabSiPlus外挂式的文件标签,下载后运行后再执行sourceinsight主程序
3、定时操作
Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable()
{
@Override
public void run()
{
}
}, 3000);
4、TagSoup 是一个Java开发符合SAX的HTML解析器
5、android-ndk-r8e/build/gmsl/__gmsl:512: *** non-numeric second argument to `wordlist' function: ''.
将AndroidManifest.xml文件先移动到其他地方,编译成功后再mv回来,这样操作果然成功。
6、
程序主动触发系统回收资源
System.runFinalization();
System.gc();
进程真正退出
System.exit(0);
1.不需要后台运行的app需在退出时调用上面的代码,以便系统回收资源和进程真正退出
2.app运行过程中也可以在合适的时候主动触发系统回收资源
基本上是Activity退到后台时加入以下一段代码处理
if (isTaskRoot()) {
System.runFinalization();
System.gc();
System.exit(0);
}
7、退出所有Activity的方法
在BaseActivity类中
private static LinkedList<Activity> activityList = new LinkedList<Activity>();
在onCreate中activityList.add(this);每次进入新的Activity将this指针压入链表,
重写onDestroy()方法移除相应的Activity,activityList.remove(this);
退出所有的Activity时,只要调用finish();方法,并移除所有的Activity就可以了。
8、android系统jni示例
public class ImageDecoder {
static{
System.loadLibrary("mathappliedprodec");
}
public native boolean decode(String path, Bitmap bitmap, int imageType);
public native boolean encode(String path, Bitmap bitmap, int imageType);
}
#include <jni.h>
#ifndef _Included_com_noahedu_dataparser_ImageDecoder
#define _Included_com_noahedu_dataparser_ImageDecoder
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jboolean JNICALL Java_com_noahedu_dataparser_ImageDecoder_decode
(JNIEnv *, jobject, jstring, jobject, jint);
JNIEXPORT jboolean JNICALL Java_com_noahedu_dataparser_ImageDecoder_encode
(JNIEnv *, jobject, jstring, jobject, jint);
#ifdef __cplusplus
}
#endif
#endif
注意函数名称命名方式。
java|包名|类名称|函数名称
Java_com_noahedu_dataparser_ImageDecoder_decode
9、jni调试
//在C工程、android工程 调试切换
#ifdef ANDROID
#include <android/log.h>
#define LOG_TAG "mathapplied"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#else
#define LOGI(...) printf(__VA_ARGS__);
#endif
10、jni杂记
jstring path
const char *file = (*env)->GetStringUTFChars(env, path, NULL);
(*env)->ReleaseStringUTFChars(env, path, file);
11、取消代码混淆编译
LOCAL_PROGUARD_ENABLED := disabled
12、使用jar包名称区分大小写
<uses-library
android:name="PenWriterLib"
android:required="false" />
13、listview背景黑块问题
android:cacheColorHint="#00000000"
12、在android程序中,如何将LogCat上的日志输出到文件?
LogCat存储在circular memory buffers中。
(1)、可以通过命令来导出Log:
详细参考
http://developer.android.com/tools/help/adb.html#logcat
(2)、在程序中获取Log的方法:
- public class LogTest extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- try {
- Process process = Runtime.getRuntime().exec("logcat -d");
- BufferedReader bufferedReader = new BufferedReader(
- new InputStreamReader(process.getInputStream()));
- StringBuilder log=new StringBuilder();
- String line;
- while ((line = bufferedReader.readLine()) != null) {
- log.append(line);
- }
- TextView tv = (TextView)findViewById(R.id.textView1);
- tv.setText(log.toString());
- } catch (IOException e) {
- }
- }
- }
详细参考
http://www.helloandroid.com/tutorials/reading-logs-programatically
Android之开发杂记(一)的更多相关文章
- Android之开发杂记(二)
1.android 4.0 以后 高版本没有虚拟菜单键
- Android之开发杂记(三)
一.popup 弹出框 在onCreate中创建时异常 Unable to add window -- token null is not valid; is your activity runnin ...
- Android N开发 你需要知道的一切
title: Android N开发 你需要知道的一切 tags: Android N,Android7.0,Android --- 转载请注明出处:http://www.cnblogs.com/yi ...
- Android游戏开发实践(1)之NDK与JNI开发03
Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...
- Android游戏开发实践(1)之NDK与JNI开发01
Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...
- Android游戏开发实践(1)之NDK与JNI开发02
Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...
- 【转】Android 底层开发的几点
我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径.根据前辈的经验,Android底层完全入门需要两年. 先说下我的入门过程:第零步,下载源码,我下的 ...
- 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
<Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th 2014 Email:skyseraph00@163.com 更多精彩请直接 ...
- Android安全开发之安全使用HTTPS
Android安全开发之安全使用HTTPS 1.HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验.主机名弱校验.webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易 ...
随机推荐
- foxmail收发gmail彻底失败
周一一上班,发现gmail无法收取邮件,刚开始以为网络不稳定,后来经过百度发现原因是 gmail邮箱也被屏蔽了. 虽然可以FQ,保证gmail邮箱暂时使用,但是不可否认,在当前的形势下, ...
- 设计模式之享元模式(FlyWeight)
#include <iostream> #include <string> #include <list> #include <vector> usin ...
- 【POJ】【2449】Remmarguts' Date
K短路/A* 经(luo)典(ti) K短路题目= = K短路学习:http://www.cnblogs.com/Hilda/p/3226692.html 流程: 先把所有边逆向,做一遍dijkstr ...
- 【BZOJ】【1048】【HAOI2007】分割矩阵
DP/记忆化搜索 暴力枚举分割方案?……大概是指数级的?大约是20!的方案= =? 但是我们看到a.b.n的范围都很小……所以不同的状态数只是$10^5$级别的,可以记忆化搜索求解 比较水的一道题…… ...
- 你用什么工具开发JavaScript?
Cloud9的CFO曾经在LinkedIn上面发起一个调查,原标题为:What tools do you use for Node.js development?,回贴者甚多. 目测很多人都使用VIM ...
- PHP 性能分析第一篇: Xhprof & Xhgui 介绍
[前言]这是国外知名博主 Davey Shafik所撰写的 PHP 应用性能分析系列的第一篇,阅读第二篇可深入了解 xhgui,第三篇则关注于性能调优实践. 什么是性能分析? 性能分析是衡量应用程序在 ...
- 将HTMLCollection/NodeList/伪数组转换成数组
这里把符合以下条件的对象称为伪数组(ArrayLike) 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments . ...
- Python - 装饰器使用过程中的误区
曾灵敏 - APRIL 27, 2015 装饰器基本概念 大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, C ...
- 异步等待的 Python 协程
现在 Python 已经支持用协程进行异步处理.但最近有建议称添加协程以全面完善 Python 的语言结构,而不是像现在这样把他们作为生成器的一个类型.此外,两个新的关键字---异步(async)和等 ...
- Delphi中有序型
有序类型包括:.integer(整型).character(字符型).boolean(布尔型).enumerated(枚举型).subrange(子界型)有序类型定义了一组被排序的值.每个相异值都有唯 ...