Android 学习笔记

2014.9.17

松下被拒,东软也没消息,太打击了。。接到通知明天面试美团。前几天学习opencv,最近两天忙android 下载项目,记点有用的。

bitmap序列化:

http://blog.csdn.net/woaieillen/article/details/8199950  

这样就可以将bitmap数据存到bin里了。

webview 获取favicon问题。 webview.getfavicon()返回null  

http://stackoverflow.com/questions/3462582/display-the-android-webviews-favicon

onCreate 里加入 WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath());

但是getfavicon()还是时常返回null,WebChromeClient 的 onReceivedIcon()应该是比较靠谱的。


2014.9.25

在连续被松下东软360美团商泰拒之门外后,终于被新松要了,今天签了三方,不知道日后待遇怎么样。

android 将自己注册为浏览器。别的应用想要打开url的时候会弹出候选打开方式,把自己的app加入其中,的方法:

http://blog.vogella.com/2011/02/21/android-intents/

之前把它加入到

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

这里了,是没有效果的。

        <activity
            android:name="com.example.tabtest3.MainActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" >
                </action>
                <category android:name="android.intent.category.DEFAULT" >
                </category>
<data android:scheme="http"/>
            </intent-filter>
        </activity>

这样就可以了。

然后在activity里

Intent intent = getIntent();  
        if(Intent.ACTION_VIEW.equals(intent.getAction())){  

不清楚if里的判断是何意。


10.28

jni 出现ReferenceTable overflow (max=1024) 错误

http://blog.csdn.net/xiechengfa/article/details/6228524

 (env)->GetShortArrayElements

 (env)->ReleaseShortArrayElements


11.5

Bitmap 复制 public static Bitmap createBitmap (Bitmap src)

下拉菜单:Spinner  http://www.open-open.com/lib/view/open1330651497624.html

 Spinner.setSelection(int position); 来设置初始显示哪个


11.6

屏幕适配 http://blog.csdn.net/guolin_blog/article/details/8830286

res/layout-sw600dp/ 屏幕宽度大于600dp则优先从这个文件夹里找layout,没有则在layout文件夹找

togglebutton自定义 http://blog.csdn.net/wwj_748/article/details/9967757

获取屏幕宽度dp相关:http://blog.csdn.net/ithomer/article/details/6688883

http://blog.csdn.net/cocodehouse/article/details/7329631

http://blog.sina.com.cn/s/blog_b5c9056601018kou.html


11.8

网络连接改变监听: http://stackoverflow.com/questions/1783117/network-listener-android

获取联网方式: http://www.2cto.com/kf/201111/109796.html


2015.1.23

ConcurrentModificationException异常: http://blog.csdn.net/lirunfa/article/details/7353857

synchronized: http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html

 三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。


2015.3.17

对Serializable用FileOutputStream writeObject存储为本地文件bin,如果程序签名换了,是无法读取的

fragment获取activity context :  getActivity();


jni 环境配置:http://blog.csdn.net/lemon_tree12138/article/details/42523435

实践发现不用按照上面的讲解

1, 新建工程:正常新建,然后右击项目,android tools->add native support

2, 工程属性里:C/C++ Build -> Environment   添加一个 NDKPATH 指向 ndkroot(ndk的文件夹)

libpcap :   http://blog.csdn.net/htttw/article/details/7521053


2015.5.27

最近修改了一下videodownloader,增加了直播HLS的下载,目前能下乐视直播、天天直播、日本的m.ustream.tv

关于iframe的DOM查找问题,所有的HTML5视频网站按理说应该是都有video标签的,有的是在iframe里,但是有的时候DOM查找并不能嗅探到,因为存在跨域问题,iframe的域如果与网页的不同,那么就无法操作,提示SecurityError ... Blocked a frame with origin...from accessing a cross-origin frame。(http://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with-origin-from-accessing-a-cross-origin-frame)

同源策略Same-origin policy,(同源策略,简单地说就是要求动态内容(例如,JavaScript或者VBScript)只能阅读与之同源的那些HTTP应答和cookies,而不能阅读来自不同源的内容。更为有趣的是,同源策略对写操作没有任何限制。http://daimojingdeyu.iteye.com/blog/1754599)

m.cmt.com是https的,嗅探到的是m3u8嵌套列表,但是请求次级列表时返回403,在chrome上调试发现,如果单给次级列表会403,如果在chrome上下载嵌套列表,再下载次级列表,则可以下载,且清空cookie则403,所以猜想是cookie原因。最后发现是请求嵌套列表时会返回cookie,请求次级列表时带上这个cookie则请求成功。


2015.6.16

Android4.4以上透明导航栏状态栏(Translucent system bar)

http://segmentfault.com/a/1190000000403651

http://www.bkjia.com/Androidjc/913061.html

	// 1.2新加=======================================================
	if (getAndroidSDKVersion() >= Build.VERSION_CODES.KITKAT) {
            // 透明状态栏
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            // 透明导航栏
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            
            // 界面在状态栏下面
            alLayout.setFitsSystemWindows(true);
            alLayout.setClipToPadding(true);
	}

最根layout有背景图片,平铺屏幕。所有界面控件都在alLayout上,alLayout在状态栏、导航栏之间


2015.6.22

opengl抗锯齿有些机器崩溃问题。使用cocos2dx的EGLConfigChooser,解决了问题。


2015.7.5

AutoCompleteTextView 可以实现输入提示(类似下拉菜单)

http://www.cnblogs.com/tinyphp/p/3969984.html



2016.1.18

开机启动

http://blog.csdn.net/sunboy_2050/article/details/8240956


4.0+ Home键失效:配置Activity增加如下

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />

crash后重启activity:配置Activity属性

android:stateNotNeeded="true" 



2016.2.19

listview adapter 偶尔抛出异常

java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.

是因为数据源变了但是没有调用notification。我这次遇到是因为数据源清空导致的。

解决办法,可以在adapter内声明一个数据源,引用到原数据源,这样原数据源置为null,adapter内的数据源依然存在

adapter的getview、getcount等都使用adapter内的数据源。


listview adapter 的 getView、getCount疯狂调用。

原因是listView必须是match_parent,不能是wrap_content

http://stackoverflow.com/questions/2618272/custom-listview-adapter-getview-method-being-called-multiple-times-and-in-no-co



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Android 的基本概念 Android 是一个开源的操作系统,主要用于移动设备,如智能手机、平板电脑等。它基于 Linux 内核,提供了丰富的应用程序框架和 API,支持多种开发语言,如 Java、C/C++、Kotlin 等。 Android 应用程序由多个组件组成,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)等。这些组件可以组合在一起,形成复杂的应用程序。 2. Android 应用程序开发 Android 应用程序开发主要使用 Java 编程语言和 Android SDK。开发工具包括 Android Studio、Eclipse 等。 Android 应用程序的结构包括布局文件、资源文件、Java 代码和清单文件等。布局文件用于定义应用程序的用户界面,资源文件包括图像、声音、样式、主题等,Java 代码实现应用程序的逻辑,清单文件描述应用程序的组件和权限等信息。 3. Android 应用程序的调试和测试 Android 应用程序的调试和测试可以使用 Android Studio 提供的调试工具,包括断点调试、日志记录等。还可以使用模拟器或真实设备进行测试。 4. Android 应用程序的发布 发布 Android 应用程序需要进行签名和打包操作,签名用于验证应用程序的身份和完整性,打包将应用程序打包成 APK 文件,可以上传到应用商店进行发布。 5. Android 应用程序的优化 Android 应用程序的优化包括优化布局、资源、代码和网络等方面,以提高应用程序的性能和用户体验。其中,布局优化包括使用布局最优化算法、使用自定义视图等;资源优化包括压缩资源、使用向量图形等;代码优化包括使用异步任务、使用缓存等;网络优化包括使用数据压缩、使用本地存储等。 6. Android 开发的挑战 Android 开发面临的挑战包括设备碎片化、安全问题、性能问题等。设备碎片化指的是不同设备的屏幕尺寸、分辨率、操作系统版本等不同,需要对应用程序进行适配;安全问题指的是应用程序需要保证用户数据的安全和隐私;性能问题指的是应用程序需要保证快速响应和流畅运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值