Recent Notes
Displaying keyword search results 1 - 10
Created by Dr. Xi on February 07, 2012 15:40:11
Last update: February 07, 2012 15:40:11
An alias defined in .profile does not work when you open a bash window from the desktop. Simply put, alias should be put in .bashrc ; PATH should be put in .profile . These are the facts: .profile is executed by the login shell, i.e., when you login. .bashrc is executed whenever a bash shell is opened - login or non-login. When you open a new bash window from the desktop, a non-login shell is created, it will execute .bashrc , not .profile . When you ssh to a remote system interactively, a login shell is created. When you ssh to a remote system and run a command directly, a non-login shell is created. PATH modifications should be put in .profile since it is usually...
Created by timo on January 25, 2012 20:13:13
Last update: January 25, 2012 20:13:13
The MIPS CPU is able to run both big-endian and little-endian. So a system built on MIPS can be either big-endian (mips) or little-endian (mipsel).
The file command shows the architecture:
$ file ls
ls: ELF 32-bit LSB executable, MIPS, ...
but readelf will tell the endianness:
$ readelf -h ls
ELF Header:
Magic: 7f 45...
Created by Fang on December 06, 2011 19:52:15
Last update: December 06, 2011 19:52:15
Resource files under the src/main/resources directory are copied verbatim to the target/classes directory during build. But resources can be filtered by turning on filtering in pom.xml :
<build> <resources> <resource> ... When filtering is turned on, constructs like ${...} are replaced with actual values if they are defined. For example, create a file test.properties : project.stage=${project.stage} The build command " mvn package " simply copies test.properties to target/classes/ . But if you build with: mvn -Dproject.stage=dev package the contents of target/classes/test.properties becomes: project.stage=dev Sometimes you want different resource definitions for different environments, e.g., dev vs. prod. You can achieve that by defining profiles in pom.xml : <profiles> <profile> <id>dev</id> ... In the above, dev is the default profile, prod is defined but not active unless...
Created by freyo on August 25, 2011 09:07:40
Last update: August 25, 2011 20:45:43
This is a list of built-in Android permission values: Permission Description Since API Level android.permission.ACCESS_CHECKIN_PROPERTIES Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded. 1 android.permission.ACCESS_COARSE_LOCATION Allows an application to access coarse (e.g., Cell-ID, WiFi) location 1 android.permission.ACCESS_FINE_LOCATION Allows an application to access fine (e.g., GPS) location 1 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS Allows an application to access extra location provider commands 1 android.permission.ACCESS_MOCK_LOCATION Allows an application to create mock location providers for testing 1 android.permission.ACCESS_NETWORK_STATE Allows applications to access information about networks 1 android.permission.ACCESS_SURFACE_FLINGER Allows an application to use SurfaceFlinger's low level features 1 android.permission.ACCESS_WIFI_STATE Allows applications to access information about Wi-Fi networks 1 android.permission.ACCOUNT_MANAGER Allows applications to call into AccountAuthenticators. Only the system can get this permission. 5 android.permission.AUTHENTICATE_ACCOUNTS...
Created by voodoo on August 08, 2011 19:54:34
Last update: August 09, 2011 07:23:45
To install the base qemu system:
$ sudo apt-get install qemu
But that only installs the emulators matching the host system ( i386 for example). To install the emulator for other architectures like mips , use:
$ sudo apt-get install qemu-kvm-extras
For Fedora, the command is:
$ sudo yum install qemu-launcher
Created by freyo on August 01, 2011 16:06:40
Last update: August 03, 2011 08:32:01
To list all installed packages:
# pm list packages
To list all disabled packages:
# pm list packages -d
pm help:
# pm
usage: pm [list|path|install|uninstall]
...
Created by magnum on June 23, 2011 13:01:49
Last update: June 23, 2011 13:01:49
Job control refers to the ability to selectively stop (suspend) the execution of processes and continue (resume) their execution at a later point. A user typically employs this facility via an interactive interface supplied jointly by the operating system kernel's terminal driver and bash. If the operating system on which bash is running supports job control, bash contains facilities to use it. Typing the suspend character (typically ^Z , Control-Z) while a process is running causes that process to be stopped and returns control to bash. A ^Z takes effect immediately, and has the additional side effect of causing pending output and typeahead to be discarded. Typing the delayed suspend character (typically ^Y , Control-Y) causes the process to be stopped when it attempts to...
Created by Dr. Xi on June 13, 2011 15:05:27
Last update: June 13, 2011 15:10:24
When you pass parameters from shell to Java, the list arguments may be messed up if there are spaces in the values.
Start with a simple Java test class:
public class EchoParams {
public static voi...
Tests:
$ java EchoParams a b c
Arg: a
Arg: b
Arg...
Now wrap the command in a shell script ( echoparams.sh ):
#!/bin/sh
java EchoParams $*
Tests:
$ ./echoparams.sh a b c
Arg: a
Arg: b
Arg...
The quotes had no effect on the parameters list.
Changing $* to $@ produces the same results.
The correct way to quote the args list is: "$@"
#!/bin/sh
java EchoParams "$@"
Test:
$ ./echoparams.sh a b "c d" "1 2 3 4 5"
Arg: a
...
Created by alfa on June 02, 2011 13:04:18
Last update: June 02, 2011 13:04:18
Some javap usage examples.
Start from HelloWorld.java :
@Deprecated
public class HelloWorld {
pu...
javap -c HelloWorld outputs:
Compiled from "HelloWorld.java"
public class He...
javap -v HelloWorld outputs ( -v for verbose mode):
Compiled from "HelloWorld.java"
public class He...
The output consists of:
" Compiled from... " header
Class attributes. For the HelloWorld example, there are two: SourceFile and Deprecated .
Minor and major class file version
Constant pool
Disassembled code
LineNumberTable for debugging purposes.
javap by default only prints package/protected/public members. To display all members including private, use the -p switch.
javap -v -p HelloWorld
Created by freyo on May 16, 2011 12:13:34
Last update: May 16, 2011 12:17:17
By Android documentation , odex files are "Optimized DEX" files, which can be created in at least three different ways: The VM does it "just in time". The output goes into a special dalvik-cache directory. This works on the desktop and engineering-only device builds where the permissions on the dalvik-cache directory are not restricted. On production devices, this is not allowed. The system installer does it when an application is first added. It has the privileges required to write to dalvik-cache . The build system does it ahead of time. The relevant jar / apk files are present, but the classes.dex is stripped out. The optimized DEX is stored next to the original zip archive, not in dalvik-cache , and is part of the system...